{
  "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,\n 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\n 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\n direction. Price and size are scaled from the perp's tick and lot grids;\n 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\n required static signer. The selected trader scopes status attribution;\n 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\n 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.\n 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."
    }
  ]
}
