openapi: 3.1.0
info:
  title: API
  description: API documentation for API
  version: 1.0.0
paths:
  /flint.margin.maker.v1.AuthService/Authenticate:
    post:
      tags:
        - flint.margin.maker.v1.AuthService
      summary: Authenticate
      description: |-
        Returns UNAUTHENTICATED for missing or expired nonces, invalid signatures,
         or keys that control no trader account.
      operationId: flint.margin.maker.v1.AuthService.Authenticate
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.AuthenticateRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.AuthenticateResponse'
  /flint.margin.maker.v1.AuthService/Challenge:
    post:
      tags:
        - flint.margin.maker.v1.AuthService
      summary: Challenge
      description: Issues a single-use nonce.
      operationId: flint.margin.maker.v1.AuthService.Challenge
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.ChallengeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.ChallengeResponse'
  /flint.margin.maker.v1.AuthService/Revoke:
    post:
      tags:
        - flint.margin.maker.v1.AuthService
      summary: Revoke
      operationId: flint.margin.maker.v1.AuthService.Revoke
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.RevokeRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.RevokeResponse'
  /flint.margin.maker.v1.EscalationService/PageTheTeam:
    post:
      tags:
        - flint.margin.maker.v1.EscalationService
      summary: PageTheTeam
      description: Confirms dispatch, not response. Rejects unauthenticated callers and empty messages.
      operationId: flint.margin.maker.v1.EscalationService.PageTheTeam
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.PageTheTeamRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.PageTheTeamResponse'
  /flint.margin.maker.v1.MakerService/GetActivity:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetActivity
      operationId: flint.margin.maker.v1.MakerService.GetActivity
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerActivityRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerActivityResponse'
  /flint.margin.maker.v1.MakerService/GetDecodedTransaction:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetDecodedTransaction
      operationId: flint.margin.maker.v1.MakerService.GetDecodedTransaction
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetDecodedTransactionRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetDecodedTransactionResponse'
  /flint.margin.maker.v1.MakerService/GetFills:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetFills
      operationId: flint.margin.maker.v1.MakerService.GetFills
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetFillsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetFillsResponse'
  /flint.margin.maker.v1.MakerService/GetMarkoutSummary:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetMarkoutSummary
      operationId: flint.margin.maker.v1.MakerService.GetMarkoutSummary
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerMarkoutSummaryRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerMarkoutSummaryResponse'
  /flint.margin.maker.v1.MakerService/GetQuote:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetQuote
      operationId: flint.margin.maker.v1.MakerService.GetQuote
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetQuoteRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetQuoteResponse'
  /flint.margin.maker.v1.MakerService/GetQuotingState:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetQuotingState
      operationId: flint.margin.maker.v1.MakerService.GetQuotingState
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetQuotingStateRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetQuotingStateResponse'
  /flint.margin.maker.v1.MakerService/GetSdkCredentials:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetSdkCredentials
      operationId: flint.margin.maker.v1.MakerService.GetSdkCredentials
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetSdkCredentialsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetSdkCredentialsResponse'
  /flint.margin.maker.v1.MakerService/GetStats:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetStats
      operationId: flint.margin.maker.v1.MakerService.GetStats
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerStatsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerStatsResponse'
  /flint.margin.maker.v1.MakerService/GetVolumeBreakdown:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetVolumeBreakdown
      operationId: flint.margin.maker.v1.MakerService.GetVolumeBreakdown
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerVolumeBreakdownRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerVolumeBreakdownResponse'
  /flint.margin.maker.v1.MakerService/GetVolumeSeries:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: GetVolumeSeries
      operationId: flint.margin.maker.v1.MakerService.GetVolumeSeries
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerVolumeSeriesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetMakerVolumeSeriesResponse'
  /flint.margin.maker.v1.MakerService/ListQuoterSessions:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: ListQuoterSessions
      operationId: flint.margin.maker.v1.MakerService.ListQuoterSessions
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.ListQuoterSessionsRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.ListQuoterSessionsResponse'
  /flint.margin.maker.v1.MakerService/ListQuotingAuthorities:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: ListQuotingAuthorities
      operationId: flint.margin.maker.v1.MakerService.ListQuotingAuthorities
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.ListQuotingAuthoritiesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.ListQuotingAuthoritiesResponse'
  /flint.margin.maker.v1.MakerService/ListRecentQuotes:
    post:
      tags:
        - flint.margin.maker.v1.MakerService
      summary: ListRecentQuotes
      operationId: flint.margin.maker.v1.MakerService.ListRecentQuotes
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.ListRecentQuotesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.ListRecentQuotesResponse'
  /flint.margin.maker.v1.MakerService/SubscribeFills: {}
  /flint.margin.maker.v1.MakerService/SubscribeMarketSnapshots: {}
  /flint.margin.maker.v1.MakerService/SubscribeQuotes: {}
  /flint.margin.maker.v1.NodeService/GetNodeInfo:
    post:
      tags:
        - flint.margin.maker.v1.NodeService
      summary: GetNodeInfo
      operationId: flint.margin.maker.v1.NodeService.GetNodeInfo
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.GetNodeInfoRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.GetNodeInfoResponse'
  /flint.margin.maker.v1.NodeService/ListNodes:
    post:
      tags:
        - flint.margin.maker.v1.NodeService
      summary: ListNodes
      operationId: flint.margin.maker.v1.NodeService.ListNodes
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.ListNodesRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.ListNodesResponse'
  /flint.margin.maker.v1.SessionService/Session: {}
  /flint.margin.maker.v1.SpreadProtectService/SubscribeSpreadProtect: {}
  /flint.margin.maker.v1.TxService/SubmitTx:
    post:
      tags:
        - flint.margin.maker.v1.TxService
      summary: SubmitTx
      description: Returns after acceptance; status transitions arrive on SubscribeTxStatus.
      operationId: flint.margin.maker.v1.TxService.SubmitTx
      parameters:
        - name: Connect-Protocol-Version
          in: header
          description: Define the version of the Connect protocol
          schema:
            $ref: '#/components/schemas/connect-protocol-version'
          example: 1
        - name: Connect-Timeout-Ms
          in: header
          description: Define the timeout, in ms
          schema:
            $ref: '#/components/schemas/connect-timeout-header'
          example: 1000
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/flint.margin.maker.v1.SubmitTxRequest'
        required: true
      responses:
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/connect.error'
        "200":
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/flint.margin.maker.v1.SubmitTxResponse'
  /flint.margin.maker.v1.TxService/SubscribeBlockhash: {}
  /flint.margin.maker.v1.TxService/SubscribeLeaders: {}
  /flint.margin.maker.v1.TxService/SubscribeSlots: {}
  /flint.margin.maker.v1.TxService/SubscribeTxStatus: {}
components:
  schemas:
    connect-protocol-version:
      type: number
      examples:
        - 1
      title: Connect-Protocol-Version
      description: Define the version of the Connect protocol
      const: 1
    connect-timeout-header:
      type: number
      examples:
        - 1000
      title: Connect-Timeout-Ms
      description: Define the timeout, in ms
    connect.error:
      type: object
      properties:
        code:
          type: string
          examples:
            - not_found
          enum:
            - canceled
            - unknown
            - invalid_argument
            - deadline_exceeded
            - not_found
            - already_exists
            - permission_denied
            - resource_exhausted
            - failed_precondition
            - aborted
            - out_of_range
            - unimplemented
            - internal
            - unavailable
            - data_loss
            - unauthenticated
          description: The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].
        message:
          type: string
          description: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.
        details:
          type: array
          items:
            $ref: '#/components/schemas/connect.error_details.Any'
          description: A list of messages that carry the error details. There is no limit on the number of messages.
      title: Connect Error
      additionalProperties: true
      description: 'Error type returned by Connect: https://connectrpc.com/docs/go/errors/#http-representation'
    connect.error_details.Any:
      type: object
      properties:
        type:
          type: string
          description: 'A URL that acts as a globally unique identifier for the type of the serialized message. For example: `type.googleapis.com/google.rpc.ErrorInfo`.'
        value:
          type: string
          format: byte
          description: The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the `type` field.
        debug:
          type: object
          title: Debug
          additionalProperties: true
          description: Deserialized error detail payload. The 'type' field indicates the schema. This field is for easier debugging and should not be relied upon for application logic.
      additionalProperties: true
      description: Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.
    flint.margin.maker.v1.AuthenticateRequest:
      type: object
      properties:
        pubkey:
          type: string
          title: pubkey
          description: Base58 public key.
        signature:
          type: string
          title: signature
          description: Base58 signature over the domain prefix and nonce returned by Challenge.
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
          description: Account to scope the session to. Omit to select the lowest authorized ID.
      title: AuthenticateRequest
      additionalProperties: false
    flint.margin.maker.v1.AuthenticateResponse:
      type: object
      properties:
        sessionToken:
          type: string
          title: session_token
          description: 'Send as `authorization: Bearer <session_token>` metadata.'
        traderIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_ids
          description: Accounts controlled as owner or active TRADE or QUOTE delegate.
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: expires_at
          description: The server returns UNAUTHENTICATED after this time.
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
          description: Account selected for this session.
      title: AuthenticateResponse
      additionalProperties: false
    flint.margin.maker.v1.Blockhash:
      type: object
      properties:
        hash:
          type: string
          title: hash
          format: byte
      title: Blockhash
      additionalProperties: false
    flint.margin.maker.v1.BlockhashEvent:
      type: object
      properties:
        blockhash:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Blockhash'
          title: blockhash
        recommendedCuPrice:
          type: string
          title: recommended_cu_price
          format: int64
          description: Priority-fee recommendation in microlamports per CU; zero is unavailable.
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        lastValidBlockHeight:
          type: string
          title: last_valid_block_height
          format: int64
          description: Solana lastValidBlockHeight; zero is unavailable.
      title: BlockhashEvent
      additionalProperties: false
    flint.margin.maker.v1.ChallengeRequest:
      type: object
      properties:
        pubkey:
          type: string
          title: pubkey
          description: Base58 owner or active TRADE- or QUOTE-delegate public key.
      title: ChallengeRequest
      additionalProperties: false
    flint.margin.maker.v1.ChallengeResponse:
      type: object
      properties:
        nonce:
          type: string
          title: nonce
          format: byte
          description: Sign `FLINT-MARGIN-AUTH-V1:` followed by this single-use nonce.
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: expires_at
          description: Server rejects Authenticate after this time.
      title: ChallengeResponse
      additionalProperties: false
    flint.margin.maker.v1.Decimal:
      type: object
      properties:
        value:
          type: string
          title: value
      title: Decimal
      additionalProperties: false
      description: Decimal string parsed with rust_decimal-compatible semantics.
    flint.margin.maker.v1.DecodedEvent:
      type: object
      properties:
        kind:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.DecodedEventKind'
          title: kind
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
          description: Trader account touched by the event; unset when venue-global.
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
          description: Perp touched by the event; unset for collateral-only actions.
        side:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Side'
          title: side
        price:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: price
        size:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: size
        instructionIndex:
          type: integer
          title: instruction_index
        eventIndex:
          type: integer
          title: event_index
        payloadJson:
          type: string
          title: payload_json
      title: DecodedEvent
      additionalProperties: false
      description: Decoded Flint margin-program event. Type-specific data is JSON.
    flint.margin.maker.v1.DecodedEventKind:
      type: string
      title: DecodedEventKind
      enum:
        - DECODED_EVENT_KIND_UNSPECIFIED
        - DECODED_EVENT_KIND_COLLATERAL
        - DECODED_EVENT_KIND_PERP_TRADE
        - DECODED_EVENT_KIND_PERP_FILL
        - DECODED_EVENT_KIND_QUOTING_UPDATE
        - DECODED_EVENT_KIND_PERP_LIQUIDATED
        - DECODED_EVENT_KIND_FUNDING_UPDATED
        - DECODED_EVENT_KIND_FUNDING_SETTLED
        - DECODED_EVENT_KIND_PERP_CONFIG_UPDATED
        - DECODED_EVENT_KIND_FUNDING_ADVANCED
        - DECODED_EVENT_KIND_PERP_UPDATE_PROPOSED
        - DECODED_EVENT_KIND_PERP_UPDATE_CANCELLED
    flint.margin.maker.v1.FillEvent:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        side:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Side'
          title: side
        price:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: price
        size:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: size
        slot:
          type: string
          title: slot
          format: int64
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        signature:
          type: string
          title: signature
        makerRebate:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: maker_rebate
        takerId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: taker_id
        refPrice0s:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: ref_price_0s
          description: |-
            Quote-denominated markout prices. Set only by GetFills; each horizon is
             unset when no price was captured.
        refPrice1s:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: ref_price_1s
        refPrice5s:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: ref_price_5s
        refPrice15s:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: ref_price_15s
        refPrice30s:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: ref_price_30s
        notionalUsd:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: notional_usd
      title: FillEvent
      additionalProperties: false
      description: |-
        Fill where the authenticated trader provided liquidity. Side is the maker's
         direction. Price and size are scaled from the perp's tick and lot grids;
         maker_rebate is denominated in the perp's PnL currency.
    flint.margin.maker.v1.GetDecodedTransactionRequest:
      type: object
      properties:
        signature:
          type: string
          title: signature
      title: GetDecodedTransactionRequest
      additionalProperties: false
      description: Address a transaction by its base58 signature.
    flint.margin.maker.v1.GetDecodedTransactionResponse:
      type: object
      properties:
        signature:
          type: string
          title: signature
        slot:
          type: string
          title: slot
          format: int64
        blockTime:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: block_time
        status:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TransactionStatus'
          title: status
        feeLamports:
          type:
            - string
            - "null"
          title: fee_lamports
          format: int64
          description: Unset when transaction metadata was not archived.
        events:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.DecodedEvent'
          title: events
          description: Ordered by instruction_index, then event_index.
      title: GetDecodedTransactionResponse
      additionalProperties: false
    flint.margin.maker.v1.GetFillsRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
        start:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: start
        end:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: end
        limit:
          type: integer
          title: limit
        cursor:
          type: string
          title: cursor
        orderBy:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MakerFillOrder'
          title: order_by
        markoutHorizon:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MarkoutHorizon'
          title: markout_horizon
          description: Horizon used by ABS_MARKOUT_DESC; ignored for TIME_DESC.
      title: GetFillsRequest
      additionalProperties: false
    flint.margin.maker.v1.GetFillsResponse:
      type: object
      properties:
        fills:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.FillEvent'
          title: fills
        nextCursor:
          type: string
          title: next_cursor
      title: GetFillsResponse
      additionalProperties: false
    flint.margin.maker.v1.GetMakerActivityRequest:
      type: object
      properties:
        start:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: start
        end:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: end
        limit:
          type: integer
          title: limit
          description: Zero uses the server default; maximum 1000.
        types:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MakerActivityType'
          title: types
      title: GetMakerActivityRequest
      additionalProperties: false
      description: Historical actions performed by the session's selected trader.
    flint.margin.maker.v1.GetMakerActivityResponse:
      type: object
      properties:
        activities:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MakerActivity'
          title: activities
          description: Ordered newest first.
      title: GetMakerActivityResponse
      additionalProperties: false
    flint.margin.maker.v1.GetMakerMarkoutSummaryRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
        start:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: start
          description: Inclusive lower bound; unset selects the server retention window.
        end:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: end
          description: Exclusive upper bound; unset selects now.
        horizon:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MarkoutHorizon'
          title: horizon
      title: GetMakerMarkoutSummaryRequest
      additionalProperties: false
      description: Whole-window markout summary, without GetFills' page limit.
    flint.margin.maker.v1.GetMakerMarkoutSummaryResponse:
      type: object
      properties:
        net:
          type: number
          title: net
          format: double
        adverse:
          type: number
          title: adverse
          format: double
          description: Absolute USD value of negative-markout fills.
        favorable:
          type: number
          title: favorable
          format: double
        volumeUsd:
          type: number
          title: volume_usd
          format: double
        fills:
          type: string
          title: fills
          format: int64
        fillsWithMarkout:
          type: string
          title: fills_with_markout
          format: int64
        fillsUnpriced:
          type: string
          title: fills_unpriced
          format: int64
          description: Non-zero means USD totals are lower bounds.
        fillsMissingRef:
          type: string
          title: fills_missing_ref
          format: int64
        avgBps:
          type:
            - number
            - "null"
          title: avg_bps
          format: double
        avgPerFill:
          type:
            - number
            - "null"
          title: avg_per_fill
          format: double
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MarkoutBucket'
          title: buckets
        perps:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MarkoutPerpRow'
          title: perps
          description: Ordered by adverse selection descending.
        histogram:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MarkoutHistogramBin'
          title: histogram
        effectiveStart:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: effective_start
          description: Actual queried window after retention clamping.
        effectiveEnd:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: effective_end
      title: GetMakerMarkoutSummaryResponse
      additionalProperties: false
    flint.margin.maker.v1.GetMakerStatsRequest:
      type: object
      title: GetMakerStatsRequest
      additionalProperties: false
    flint.margin.maker.v1.GetMakerStatsResponse:
      type: object
      properties:
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        fills:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: fills
        transactionsSent:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: transactions_sent
        transactionsLanded:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: transactions_landed
        transactionsFailed:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: transactions_failed
        oracleUpdates:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: oracle_updates
        quoteUpdates:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.UpdateRate'
          title: quote_updates
      title: GetMakerStatsResponse
      additionalProperties: false
    flint.margin.maker.v1.GetMakerVolumeBreakdownRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
          description: Empty selects every perp where the session's trader has maker fills.
      title: GetMakerVolumeBreakdownRequest
      additionalProperties: false
      description: Per-trader maker volume, split by rolling window.
    flint.margin.maker.v1.GetMakerVolumeBreakdownResponse:
      type: object
      properties:
        perps:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpVolume'
          title: perps
          description: Ordered by 24-hour USD volume descending.
      title: GetMakerVolumeBreakdownResponse
      additionalProperties: false
    flint.margin.maker.v1.GetMakerVolumeSeriesRequest:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
          description: Unset aggregates every perp where the session's trader has maker fills.
        window:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.StatsWindow'
          title: window
      title: GetMakerVolumeSeriesRequest
      additionalProperties: false
    flint.margin.maker.v1.GetMakerVolumeSeriesResponse:
      type: object
      properties:
        buckets:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.VolumeBucket'
          title: buckets
          description: Ordered oldest first.
        bucketSeconds:
          type: integer
          title: bucket_seconds
      title: GetMakerVolumeSeriesResponse
      additionalProperties: false
    flint.margin.maker.v1.GetNodeInfoRequest:
      type: object
      title: GetNodeInfoRequest
      additionalProperties: false
    flint.margin.maker.v1.GetNodeInfoResponse:
      type: object
      properties:
        version:
          type: string
          title: version
          description: Server build identity.
        gitCommit:
          type: string
          title: git_commit
        protoHash:
          type: string
          title: proto_hash
          description: Schema revision used to build this node.
        protoRev:
          type: string
          title: proto_rev
        cluster:
          type: string
          title: cluster
          description: Solana cluster this node is pointed at (e.g. "mainnet-beta").
        region:
          type: string
          title: region
          description: Deploy region owning this node.
        programId:
          type: string
          title: program_id
          description: Base58 program id of the on-chain venue this node serves.
        startedAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: started_at
          description: Process start time.
        leaderProximity:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.LeaderProximity'
          title: leader_proximity
        serverInstance:
          type: string
          title: server_instance
          description: Per-process server instance ID.
        regionLatLng:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.LatLng'
            - type: "null"
          title: region_lat_lng
          description: Approximate region location; absent when unavailable.
        health:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.HealthState'
          title: health
          description: Health of this node only.
        healthReason:
          type: string
          title: health_reason
          description: Why `health` is not HEALTH_STATE_HEALTHY. Empty when it is.
      title: GetNodeInfoResponse
      additionalProperties: false
    flint.margin.maker.v1.GetQuoteRequest:
      type: object
      properties:
        signature:
          type: string
          title: signature
        instructionIndex:
          type: integer
          title: instruction_index
        updateIndex:
          type: integer
          title: update_index
      title: GetQuoteRequest
      additionalProperties: false
    flint.margin.maker.v1.GetQuoteResponse:
      type: object
      properties:
        quote:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.QuoteUpdate'
          title: quote
      title: GetQuoteResponse
      additionalProperties: false
    flint.margin.maker.v1.GetQuotingStateRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
      title: GetQuotingStateRequest
      additionalProperties: false
    flint.margin.maker.v1.GetQuotingStateResponse:
      type: object
      properties:
        entries:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.QuotingState'
          title: entries
      title: GetQuotingStateResponse
      additionalProperties: false
    flint.margin.maker.v1.GetSdkCredentialsRequest:
      type: object
      title: GetSdkCredentialsRequest
      additionalProperties: false
    flint.margin.maker.v1.GetSdkCredentialsResponse:
      type: object
      properties:
        token:
          type: string
          title: token
          description: Plaintext read-only registry token. Repeated calls return the same token.
        tokenName:
          type: string
          title: token_name
        indexUrl:
          type: string
          title: index_url
        registryName:
          type: string
          title: registry_name
        createdAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: created_at
      title: GetSdkCredentialsResponse
      additionalProperties: false
    flint.margin.maker.v1.HealthState:
      type: string
      title: HealthState
      enum:
        - HEALTH_STATE_UNSPECIFIED
        - HEALTH_STATE_HEALTHY
        - HEALTH_STATE_DEGRADED
        - HEALTH_STATE_HALTED
    flint.margin.maker.v1.LatLng:
      type: object
      properties:
        lat:
          type: number
          title: lat
          format: double
        lng:
          type: number
          title: lng
          format: double
      title: LatLng
      additionalProperties: false
      description: Absent when the location is unavailable.
    flint.margin.maker.v1.LeaderEvent:
      type: object
      properties:
        startSlot:
          type: string
          title: start_slot
          format: int64
        endSlot:
          type: string
          title: end_slot
          format: int64
        tpuIp:
          type: string
          title: tpu_ip
        tpuQuicPort:
          type: integer
          title: tpu_quic_port
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
      title: LeaderEvent
      additionalProperties: false
    flint.margin.maker.v1.LeaderProximity:
      type: object
      properties:
        measured:
          type: integer
          title: measured
          description: Zero means no sample; distance fields are then meaningless.
        meanDistanceMicros:
          type: integer
          title: mean_distance_micros
        medianDistanceMicros:
          type: integer
          title: median_distance_micros
        p90DistanceMicros:
          type: integer
          title: p90_distance_micros
      title: LeaderProximity
      additionalProperties: false
      description: Observed round-trip distance to block leaders.
    flint.margin.maker.v1.ListNodesRequest:
      type: object
      properties:
        cluster:
          type: string
          title: cluster
          description: Empty includes every cluster.
      title: ListNodesRequest
      additionalProperties: false
    flint.margin.maker.v1.ListNodesResponse:
      type: object
      properties:
        nodes:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.NodeEndpoint'
          title: nodes
          description: Published endpoints only; entries do not imply current health.
      title: ListNodesResponse
      additionalProperties: false
    flint.margin.maker.v1.ListQuoterSessionsRequest:
      type: object
      properties:
        quoter:
          type: string
          title: quoter
          description: Empty includes every session observed for the selected trader.
      title: ListQuoterSessionsRequest
      additionalProperties: false
    flint.margin.maker.v1.ListQuoterSessionsResponse:
      type: object
      properties:
        sessions:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.QuoterSession'
          title: sessions
          description: Ordered most-recently-seen first.
      title: ListQuoterSessionsResponse
      additionalProperties: false
    flint.margin.maker.v1.ListQuotingAuthoritiesRequest:
      type: object
      properties:
        quoter:
          type: string
          title: quoter
          description: Empty includes every authority observed for the selected trader.
      title: ListQuotingAuthoritiesRequest
      additionalProperties: false
    flint.margin.maker.v1.ListQuotingAuthoritiesResponse:
      type: object
      properties:
        authorities:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.QuotingAuthority'
          title: authorities
          description: Ordered by open session count descending.
        bucketSeconds:
          type: integer
          title: bucket_seconds
        seriesStart:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: series_start
        seriesEnd:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: series_end
      title: ListQuotingAuthoritiesResponse
      additionalProperties: false
    flint.margin.maker.v1.ListRecentQuotesRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
        quoters:
          type: array
          items:
            type: string
          title: quoters
        start:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: start
        end:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: end
        limit:
          type: integer
          title: limit
        cursor:
          type: string
          title: cursor
      title: ListRecentQuotesRequest
      additionalProperties: false
    flint.margin.maker.v1.ListRecentQuotesResponse:
      type: object
      properties:
        quotes:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.QuoteUpdate'
          title: quotes
        nextCursor:
          type: string
          title: next_cursor
      title: ListRecentQuotesResponse
      additionalProperties: false
    flint.margin.maker.v1.MakerActivity:
      type: object
      properties:
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
          description: Unset for collateral-only actions.
        slot:
          type: string
          title: slot
          format: int64
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        signature:
          type: string
          title: signature
        type:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MakerActivityType'
          title: type
        payloadJson:
          type: string
          title: payload_json
          description: Decoded event detail; fields depend on type.
      title: MakerActivity
      additionalProperties: false
      description: One decoded account or quoting action associated with a trader.
    flint.margin.maker.v1.MakerActivityType:
      type: string
      title: MakerActivityType
      enum:
        - MAKER_ACTIVITY_TYPE_UNSPECIFIED
        - MAKER_ACTIVITY_TYPE_COLLATERAL
        - MAKER_ACTIVITY_TYPE_PERP_TRADE
        - MAKER_ACTIVITY_TYPE_QUOTING_UPDATE
    flint.margin.maker.v1.MakerFillOrder:
      type: string
      title: MakerFillOrder
      enum:
        - MAKER_FILL_ORDER_UNSPECIFIED
        - MAKER_FILL_ORDER_TIME_DESC
        - MAKER_FILL_ORDER_ABS_MARKOUT_DESC
    flint.margin.maker.v1.MakerMarketSnapshot:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        slot:
          type: string
          title: slot
          format: int64
        bestBid:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpL2Level'
          title: best_bid
        bestAsk:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpL2Level'
          title: best_ask
        bidDepthLevels:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpL2Level'
          title: bid_depth_levels
        askDepthLevels:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpL2Level'
          title: ask_depth_levels
        lastPrice:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: last_price
        makerBid:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MakerQuote'
          title: maker_bid
        makerAsk:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.MakerQuote'
          title: maker_ask
      title: MakerMarketSnapshot
      additionalProperties: false
      description: Perp market snapshot with the authenticated trader's best quotes.
    flint.margin.maker.v1.MakerMarketsSnapshotEvent:
      type: object
      properties:
        slot:
          type: string
          title: slot
          format: int64
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        markets:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.MakerMarketSnapshot'
          title: markets
      title: MakerMarketsSnapshotEvent
      additionalProperties: false
    flint.margin.maker.v1.MakerQuote:
      type: object
      properties:
        price:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: price
        size:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: size
        level:
          type: integer
          title: level
      title: MakerQuote
      additionalProperties: false
      description: The authenticated trader's resting quote on one side of a perp.
    flint.margin.maker.v1.MarkoutBucket:
      type: object
      properties:
        index:
          type: integer
          title: index
        net:
          type: number
          title: net
          format: double
        adverse:
          type: number
          title: adverse
          format: double
        favorable:
          type: number
          title: favorable
          format: double
      title: MarkoutBucket
      additionalProperties: false
    flint.margin.maker.v1.MarkoutHistogramBin:
      type: object
      properties:
        min:
          type:
            - number
            - "null"
          title: min
          format: double
          description: Unset edges are unbounded.
        max:
          type:
            - number
            - "null"
          title: max
          format: double
        count:
          type: string
          title: count
          format: int64
        volumeUsd:
          type: number
          title: volume_usd
          format: double
        net:
          type: number
          title: net
          format: double
      title: MarkoutHistogramBin
      additionalProperties: false
    flint.margin.maker.v1.MarkoutHorizon:
      type: string
      title: MarkoutHorizon
      enum:
        - MARKOUT_HORIZON_UNSPECIFIED
        - MARKOUT_HORIZON_SEC_0
        - MARKOUT_HORIZON_SEC_1
        - MARKOUT_HORIZON_SEC_5
        - MARKOUT_HORIZON_SEC_15
        - MARKOUT_HORIZON_SEC_30
    flint.margin.maker.v1.MarkoutPerpRow:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        net:
          type: number
          title: net
          format: double
        adverse:
          type: number
          title: adverse
          format: double
        favorable:
          type: number
          title: favorable
          format: double
        volumeUsd:
          type: number
          title: volume_usd
          format: double
        fills:
          type: string
          title: fills
          format: int64
        fillsWithMarkout:
          type: string
          title: fills_with_markout
          format: int64
        avgBps:
          type:
            - number
            - "null"
          title: avg_bps
          format: double
      title: MarkoutPerpRow
      additionalProperties: false
    flint.margin.maker.v1.NodeEndpoint:
      type: object
      properties:
        endpoint:
          type: string
          title: endpoint
          description: gRPC endpoint, as host:port or URL.
        region:
          type: string
          title: region
        regionLatLng:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.LatLng'
            - type: "null"
          title: region_lat_lng
          description: Approximate region location; absent when unavailable.
        cluster:
          type: string
          title: cluster
        current:
          type: boolean
          title: current
          description: True for the endpoint serving this request.
      title: NodeEndpoint
      additionalProperties: false
    flint.margin.maker.v1.PageTheTeamRequest:
      type: object
      properties:
        message:
          type: string
          title: message
          description: Required non-empty message, delivered verbatim to on-call.
      title: PageTheTeamRequest
      additionalProperties: false
    flint.margin.maker.v1.PageTheTeamResponse:
      type: object
      properties:
        pageId:
          type: string
          title: page_id
          description: Server-assigned page ID.
        receivedAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: received_at
          description: When the server accepted the page.
      title: PageTheTeamResponse
      additionalProperties: false
    flint.margin.maker.v1.PerpId:
      type: object
      properties:
        id:
          type: integer
          title: id
      title: PerpId
      additionalProperties: false
    flint.margin.maker.v1.PerpL2Level:
      type: object
      properties:
        price:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: price
        size:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: size
      title: PerpL2Level
      additionalProperties: false
      description: One price level on a perp market book.
    flint.margin.maker.v1.PerpVolume:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        oneHour:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.VolumeWindow'
          title: one_hour
        twentyFourHour:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.VolumeWindow'
          title: twenty_four_hour
        thirtyDay:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.VolumeWindow'
          title: thirty_day
        lastPrice:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: last_price
          description: Most recent observed fill price.
      title: PerpVolume
      additionalProperties: false
    flint.margin.maker.v1.Ping:
      type: object
      properties:
        localTime:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: local_time
          description: Server wall-clock at send time.
        seq:
          type: string
          title: seq
          format: int64
          description: Per-stream correlation nonce.
      title: Ping
      additionalProperties: false
      description: Server liveness probe; clients echo seq in an immediate Pong.
    flint.margin.maker.v1.Pong:
      type: object
      properties:
        localTime:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: local_time
          description: Client wall-clock at reply time; used to estimate clock drift.
        seq:
          type: string
          title: seq
          format: int64
          description: Echo of the originating `Ping.seq`.
      title: Pong
      additionalProperties: false
      description: Client reply to a `Ping`, sent immediately on receipt.
    flint.margin.maker.v1.QuoteUpdate:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        blockTime:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: block_time
        slot:
          type: string
          title: slot
          format: int64
        signature:
          type: string
          title: signature
        instructionIndex:
          type: integer
          title: instruction_index
        entryIndexHint:
          type: integer
          title: entry_index_hint
          description: Lookup hint for UpdateQuoting; exact entry index for compact batches.
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        quoter:
          type: string
          title: quoter
        strategy:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.QuotingStrategy'
          title: strategy
        sequence:
          type: string
          title: sequence
          format: int64
        payloadJson:
          type: string
          title: payload_json
        updateKind:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.QuoteUpdateKind'
          title: update_kind
        updateIndex:
          type: integer
          title: update_index
          description: Zero for UpdateQuoting, otherwise the one-based item within a compact batch.
        applied:
          type:
            - boolean
            - "null"
          title: applied
          description: Absent when a partial-success batch does not report individual outcomes.
        enabledAfter:
          type:
            - boolean
            - "null"
          title: enabled_after
          description: Absent when the update preserves the current enabled flag.
      title: QuoteUpdate
      additionalProperties: false
      description: Submitted quoting intent in a successfully executed transaction.
    flint.margin.maker.v1.QuoteUpdateKind:
      type: string
      title: QuoteUpdateKind
      enum:
        - QUOTE_UPDATE_KIND_UNSPECIFIED
        - QUOTE_UPDATE_KIND_KEEP
        - QUOTE_UPDATE_KIND_RESET
        - QUOTE_UPDATE_KIND_ORDER_LIST
        - QUOTE_UPDATE_KIND_SPLINE_FAIR
        - QUOTE_UPDATE_KIND_SPLINE_BANDS
        - QUOTE_UPDATE_KIND_DENSITY_FAIR
        - QUOTE_UPDATE_KIND_DENSITY_BANDS
        - QUOTE_UPDATE_KIND_RELATIVE_DENSITY_BANDS
    flint.margin.maker.v1.QuoterSeriesBucket:
      type: object
      properties:
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        rttSamples:
          type: integer
          title: rtt_samples
        p50RttMicros:
          type: string
          title: p50_rtt_micros
          format: int64
        p99RttMicros:
          type: string
          title: p99_rtt_micros
          format: int64
        quotes:
          type: string
          title: quotes
          format: int64
        transactionsSent:
          type: string
          title: transactions_sent
          format: int64
        transactionsLanded:
          type: string
          title: transactions_landed
          format: int64
        transactionsFailed:
          type: string
          title: transactions_failed
          format: int64
        landSamples:
          type: integer
          title: land_samples
        p50LandMicros:
          type: string
          title: p50_land_micros
          format: int64
        p99LandMicros:
          type: string
          title: p99_land_micros
          format: int64
      title: QuoterSeriesBucket
      additionalProperties: false
    flint.margin.maker.v1.QuoterSession:
      type: object
      properties:
        sessionId:
          type: string
          title: session_id
          description: Server-minted identifier; never the bearer token itself.
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        quoter:
          type: string
          title: quoter
        connectedAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: connected_at
        expiresAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: expires_at
        lastSeen:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: last_seen
        ip:
          type: string
          title: ip
        sdk:
          type: string
          title: sdk
        protoRev:
          type: string
          title: proto_rev
        rttMicros:
          type: string
          title: rtt_micros
          format: int64
        driftMicros:
          type: string
          title: drift_micros
          format: int64
        region:
          type: string
          title: region
        serverInstance:
          type: string
          title: server_instance
        sessionLatLng:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.LatLng'
            - type: "null"
          title: session_lat_lng
        serverLatLng:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.LatLng'
            - type: "null"
          title: server_lat_lng
        lastSubmittedAt:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: last_submitted_at
        lastLandedAt:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: last_landed_at
      title: QuoterSession
      additionalProperties: false
      description: One currently-open session for a selected trader.
    flint.margin.maker.v1.QuotingAuthority:
      type: object
      properties:
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        quoter:
          type: string
          title: quoter
          description: Base58 public key that authenticated the sessions.
        openSessions:
          type: integer
          title: open_sessions
        lastSeen:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: last_seen
        minRttMicros:
          type: string
          title: min_rtt_micros
          format: int64
        regions:
          type: array
          items:
            type: string
          title: regions
        sdks:
          type: array
          items:
            type: string
          title: sdks
        lastSubmittedAt:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: last_submitted_at
        lastLandedAt:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: last_landed_at
        solLamports:
          type:
            - string
            - "null"
          title: sol_lamports
          format: int64
        solBalanceAsOf:
          oneOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
            - type: "null"
          title: sol_balance_as_of
        p50RttMicros:
          type: string
          title: p50_rtt_micros
          format: int64
        p99RttMicros:
          type: string
          title: p99_rtt_micros
          format: int64
        rttSamples:
          type: integer
          title: rtt_samples
        series:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.QuoterSeriesBucket'
          title: series
      title: QuotingAuthority
      additionalProperties: false
      description: Aggregate of one authority's currently-open sessions for a trader.
    flint.margin.maker.v1.QuotingState:
      type: object
      properties:
        perpId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_id
        traderId:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.TraderId'
          title: trader_id
        entryIndex:
          type: integer
          title: entry_index
        sequence:
          type: string
          title: sequence
          format: int64
          description: Maximum of the independent streams; use their fields when reconciling writes.
        enabled:
          type: boolean
          title: enabled
        strategy:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.QuotingStrategy'
          title: strategy
        payloadJson:
          type: string
          title: payload_json
        slot:
          type: string
          title: slot
          format: int64
        observedAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: observed_at
        orderSequence:
          type: string
          title: order_sequence
          format: int64
        fairSequence:
          type:
            - string
            - "null"
          title: fair_sequence
          format: int64
      title: QuotingState
      additionalProperties: false
      description: Latest observed state for one admitted on-chain quoting entry.
    flint.margin.maker.v1.QuotingStrategy:
      type: string
      title: QuotingStrategy
      enum:
        - QUOTING_STRATEGY_UNSPECIFIED
        - QUOTING_STRATEGY_ORDER_LIST
        - QUOTING_STRATEGY_SPLINE
        - QUOTING_STRATEGY_DENSITY
        - QUOTING_STRATEGY_RELATIVE_DENSITY
    flint.margin.maker.v1.ResetState:
      type: object
      properties:
        defaultSpreadMult:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: default_spread_mult
          description: Baseline multiplier to apply when no widen window is active.
      title: ResetState
      additionalProperties: false
      description: Replace the client's local SpreadProtect state.
    flint.margin.maker.v1.RevokeRequest:
      type: object
      properties:
        sessionToken:
          type: string
          title: session_token
      title: RevokeRequest
      additionalProperties: false
    flint.margin.maker.v1.RevokeResponse:
      type: object
      title: RevokeResponse
      additionalProperties: false
    flint.margin.maker.v1.SessionRequest:
      type: object
      anyOf:
        - type: object
          properties:
            pong:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.Pong'
              title: pong
          title: pong
      unevaluatedProperties: false
      title: SessionRequest
    flint.margin.maker.v1.SessionResponse:
      type: object
      anyOf:
        - type: object
          properties:
            ping:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.Ping'
              title: ping
          title: ping
      unevaluatedProperties: false
      title: SessionResponse
    flint.margin.maker.v1.Side:
      type: string
      title: Side
      enum:
        - SIDE_UNSPECIFIED
        - SIDE_BUY
        - SIDE_SELL
    flint.margin.maker.v1.SlotEvent:
      type: object
      properties:
        slot:
          type: string
          title: slot
          format: int64
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
      title: SlotEvent
      additionalProperties: false
    flint.margin.maker.v1.SpotId:
      type: object
      properties:
        id:
          type: integer
          title: id
      title: SpotId
      additionalProperties: false
      description: On-chain margin spot-asset id.
    flint.margin.maker.v1.SpreadProtectEvent:
      type: object
      anyOf:
        - type: object
          properties:
            resetState:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.ResetState'
              title: reset_state
          title: reset_state
        - type: object
          properties:
            widenWindow:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.WidenWindow'
              title: widen_window
          title: widen_window
      unevaluatedProperties: false
      not:
        allOf:
          - anyOf:
              - required:
                  - resetState
              - required:
                  - widenWindow
          - not:
              oneOf:
                - required:
                    - resetState
                - required:
                    - widenWindow
      title: SpreadProtectEvent
      description: Spread-protection stream event.
    flint.margin.maker.v1.StatsWindow:
      type: string
      title: StatsWindow
      enum:
        - STATS_WINDOW_UNSPECIFIED
        - STATS_WINDOW_1H
        - STATS_WINDOW_24H
        - STATS_WINDOW_30D
    flint.margin.maker.v1.SubmitTxRequest:
      type: object
      properties:
        transaction:
          type: string
          title: transaction
          format: byte
          description: |-
            Fully signed legacy or v0 transaction. The authenticated key must be a
             required static signer. The selected trader scopes status attribution;
             the server does not infer transaction account ownership.
        clientSentAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: client_sent_at
          description: Client send time for latency telemetry only.
      title: SubmitTxRequest
      additionalProperties: false
    flint.margin.maker.v1.SubmitTxResponse:
      type: object
      properties:
        signature:
          type: string
          title: signature
          description: Base58 signature for correlating TxStatusEvents.
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
          description: Server time when the submission was accepted.
        serverRepliedAt:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: server_replied_at
          description: Server reply time. Subtract ts for server handling time without clock skew.
      title: SubmitTxResponse
      additionalProperties: false
    flint.margin.maker.v1.SubscribeBlockhashRequest:
      type: object
      title: SubscribeBlockhashRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeFillsRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
      title: SubscribeFillsRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeLeadersRequest:
      type: object
      title: SubscribeLeadersRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeMakerMarketSnapshotsRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
          description: Empty selects every perp admitted for the session's trader.
      title: SubscribeMakerMarketSnapshotsRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeQuotesRequest:
      type: object
      properties:
        perpIds:
          type: array
          items:
            $ref: '#/components/schemas/flint.margin.maker.v1.PerpId'
          title: perp_ids
        quoters:
          type: array
          items:
            type: string
          title: quoters
      title: SubscribeQuotesRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeSlotsRequest:
      type: object
      title: SubscribeSlotsRequest
      additionalProperties: false
    flint.margin.maker.v1.SubscribeSpreadProtectRequest:
      type: object
      title: SubscribeSpreadProtectRequest
      additionalProperties: false
      description: |-
        Subscribe to the SpreadProtect widen-window feed. No filters: the policy is
         server-side and the same windows apply to every maker.
    flint.margin.maker.v1.SubscribeTxStatusRequest:
      type: object
      title: SubscribeTxStatusRequest
      additionalProperties: false
      description: Streams status transitions attributed to this session's selected trader.
    flint.margin.maker.v1.Timestamp:
      type: object
      properties:
        micros:
          type: string
          title: micros
          format: int64
      title: Timestamp
      additionalProperties: false
      description: Unix microseconds since epoch; zero is unspecified.
    flint.margin.maker.v1.TraderId:
      type: object
      properties:
        id:
          type: string
          title: id
          format: int64
      title: TraderId
      additionalProperties: false
    flint.margin.maker.v1.TransactionStatus:
      type: string
      title: TransactionStatus
      enum:
        - TRANSACTION_STATUS_UNSPECIFIED
        - TRANSACTION_STATUS_CONFIRMED
        - TRANSACTION_STATUS_FAILED
    flint.margin.maker.v1.TxAckEvent:
      type: object
      properties:
        signature:
          type: string
          title: signature
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
      title: TxAckEvent
      additionalProperties: false
      description: Accepted for submission; not confirmation.
    flint.margin.maker.v1.TxFailedEvent:
      type: object
      properties:
        signature:
          type: string
          title: signature
        reason:
          type: string
          title: reason
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
      title: TxFailedEvent
      additionalProperties: false
      description: Reverted after landing or timed out before landing.
    flint.margin.maker.v1.TxLandedEvent:
      type: object
      properties:
        signature:
          type: string
          title: signature
        slot:
          type: string
          title: slot
          format: int64
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
      title: TxLandedEvent
      additionalProperties: false
      description: Observed at Processed commitment with no error.
    flint.margin.maker.v1.TxStatusEvent:
      type: object
      anyOf:
        - type: object
          properties:
            ack:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.TxAckEvent'
              title: ack
          title: ack
        - type: object
          properties:
            failed:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.TxFailedEvent'
              title: failed
          title: failed
        - type: object
          properties:
            landed:
              allOf:
                - $ref: '#/components/schemas/flint.margin.maker.v1.TxLandedEvent'
              title: landed
          title: landed
      unevaluatedProperties: false
      not:
        allOf:
          - anyOf:
              - required:
                  - ack
              - required:
                  - failed
              - required:
                  - landed
          - not:
              oneOf:
                - required:
                    - ack
                - required:
                    - failed
                - required:
                    - landed
      title: TxStatusEvent
    flint.margin.maker.v1.UpdateRate:
      type: object
      properties:
        perSecond1s:
          type: number
          title: per_second_1s
          format: double
        perSecond1m:
          type: number
          title: per_second_1m
          format: double
        perSecond5m:
          type: number
          title: per_second_5m
          format: double
      title: UpdateRate
      additionalProperties: false
    flint.margin.maker.v1.VolumeBucket:
      type: object
      properties:
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
        volumeUsd:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: volume_usd
        fillCount:
          type: string
          title: fill_count
          format: int64
      title: VolumeBucket
      additionalProperties: false
    flint.margin.maker.v1.VolumeWindow:
      type: object
      properties:
        volumeUsd:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: volume_usd
          description: Notional in USD, counted once for each matched long/short pair.
        fillCount:
          type: string
          title: fill_count
          format: int64
      title: VolumeWindow
      additionalProperties: false
    flint.margin.maker.v1.WidenWindow:
      type: object
      properties:
        startSlot:
          type: string
          title: start_slot
          format: int64
          description: Inclusive first slot of the window.
        endSlot:
          type: string
          title: end_slot
          format: int64
          description: Inclusive last slot of the window.
        spreadMult:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Decimal'
          title: spread_mult
          description: Exact decimal multiplier, at least 1.0.
        ts:
          allOf:
            - $ref: '#/components/schemas/flint.margin.maker.v1.Timestamp'
          title: ts
          description: Server send time, for client-side latency/attribution. Not policy.
      title: WidenWindow
      additionalProperties: false
      description: Idempotent advisory for an inclusive slot range; expires after end_slot.
security: []
tags:
  - name: flint.margin.maker.v1.AuthService
    description: Issues sessions through a signed challenge; TxService requires the token.
  - name: flint.margin.maker.v1.EscalationService
    description: Organization-authenticated escalation to the on-call team.
  - name: flint.margin.maker.v1.MakerService
    description: Session-authenticated maker queries and streams.
  - name: flint.margin.maker.v1.NodeService
    description: Public node identity and endpoint discovery.
  - name: flint.margin.maker.v1.SessionService
    description: |-
      Server sends a Ping every 30s; clients reply immediately with a Pong.
       Requires a keypair session via `authorization: Bearer <token>` metadata.
  - name: flint.margin.maker.v1.SpreadProtectService
    description: Keypair-session-authenticated advisory spread-protection feed.
  - name: flint.margin.maker.v1.TxService
    description: 'Requires `authorization: Bearer <token>` metadata from AuthService.'
