{
  "openapi": "3.0.4",
  "info": {
    "title": "KArtSell.Host",
    "version": "1.0"
  },
  "paths": {
    "/api/shadow-runs": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesShadowRunInitiateShadowRunEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.InitiateShadowRunRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.InitiateShadowRunResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/shadow-runs/{RunId}": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesShadowRunGetShadowRunPollingEndpoint",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.GetShadowRunResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/portfolio/{portfolioId}/rebalance": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioTriggerRebalanceEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RebalanceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RebalanceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/portfolio/{portfolioId}/composition": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioGetCompositionEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PortfolioCompositionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/portfolio/{portfolioId}/risk": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioGetRiskMetricsEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/portfolio/{portfolioId}/stress": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioTriggerStressTestEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.TriggerStressTestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.StressTestResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/portfolio/{portfolioId}/alerts": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioGetAlertsEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.GetAlertsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/dashboard/risk": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesPortfolioGetRiskDashboardEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.DashboardResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/observability/metrics": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesObservabilityGetMetricsEndpoint",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.EmptyRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.EmptyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.MetricsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/market/ingest": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesMarketDataTriggerIngestionEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/market/ingest/{jobId}": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesMarketDataGetIngestionStatusEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.MarketData.IngestionStatusResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/health/ping": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellHostFeaturesHealthPingEndpoint",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Host.Features.Health.PingRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Host.Features.Health.PingResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/sell-decisions": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsSellDecisionCreateSellDecisionEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsSellDecisionListSellDecisionsEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ListSellDecisionsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/sell-decisions/{id}/execute": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsSellDecisionExecuteSellDecisionEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/v1/approval-queue/{id}/reject": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesRejectModelEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.RejectModel.Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.RejectModel.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/v1/observability/metrics": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesGetObservabilityMetricsEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetObservabilityMetrics.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/v1/model-operations/plan": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesGetModelOperationsPlanEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/model-operations/feedback-loop": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesGetModelFeedbackLoopEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/v1/approval-queue": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesGetApprovalQueueEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/api/v1/approval-queue/{id}/approve": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApproveModelEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApproveModel.Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApproveModel.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/approvals": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowCreateApprovalEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.CreateApprovalResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowGetApprovalsEndpoint",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/approvals/{id}/propose": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowProposeForReviewEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ProposeForReviewResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/approvals/{id}/activate": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowActivateApprovalEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ActivateApprovalResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/approvals/{id}": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowGetApprovalByIdEndpoint",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDetailResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/approvals/{id}/approve": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsFeaturesApprovalWorkflowApproveApprovalEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/audit/events": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsComplianceQueryAuditEventsEndpoint",
        "requestBody": {
          "content": {
            "*/*": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/compliance/gdpr-request": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesModelOperationsComplianceSubmitGdprRequestEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.SubmitGdprRequestDto"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.GdprRequestResponseDto"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/v1/research/sell-policy/evaluate": {
      "post": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesSignalEngineFeaturesEvaluateResearchSellPolicyEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/health/live": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/health/ready": {
      "get": {
        "tags": [
          "KArtSell.Host"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Authentication required",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Permission denied",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/internal/v1/signal-decisions": {
      "post": {
        "tags": [
          "SignalEngine"
        ],
        "description": "\r\nProblemDetails types: validation, business-rule, conflict, permission, not-found, integration, system.\r\nCorrelation: X-Correlation-Id.",
        "operationId": "KArtSellModulesSignalEngineFeaturesGenerateSellDecisionEndpoint",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Request"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Response"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Resource not found",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Concurrency or business conflict",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "KArtSell.Host.Features.Health.PingRequest": {
        "type": "object",
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Health.PingResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.MarketData.IngestionRequest": {
        "type": "object",
        "properties": {
          "dataSource": {
            "type": "string",
            "nullable": true
          },
          "fromDate": {
            "type": "string",
            "nullable": true
          },
          "toDate": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.MarketData.IngestionResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "expectedRowCount": {
            "type": "integer",
            "format": "int32"
          },
          "queuedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.MarketData.IngestionStatusResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "rowsProcessed": {
            "type": "integer",
            "format": "int32"
          },
          "rowsFailed": {
            "type": "integer",
            "format": "int32"
          },
          "rowsSkipped": {
            "type": "integer",
            "format": "int32"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "durationSeconds": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.BatchSlaMetrics": {
        "type": "object",
        "properties": {
          "totalJobs": {
            "type": "integer",
            "format": "int32"
          },
          "onTimeJobs": {
            "type": "integer",
            "format": "int32"
          },
          "slaPercentage": {
            "type": "number",
            "format": "double"
          },
          "averageCompleteionTime": {
            "type": "string",
            "format": "date-span"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.DataQualityMetrics": {
        "type": "object",
        "properties": {
          "quarantinedJobs": {
            "type": "integer",
            "format": "int32"
          },
          "totalJobs": {
            "type": "integer",
            "format": "int32"
          },
          "qualityPercentage": {
            "type": "number",
            "format": "double"
          },
          "recentErrors": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.DuplicateDetectionMetrics": {
        "type": "object",
        "properties": {
          "duplicatesDetected": {
            "type": "integer",
            "format": "int32"
          },
          "duplicatesResolved": {
            "type": "integer",
            "format": "int32"
          },
          "lastCheckAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.EmptyRequest": {
        "type": "object",
        "properties": {
          "_placeholder": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.MetricsResponse": {
        "type": "object",
        "properties": {
          "batchSla": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.BatchSlaMetrics"
          },
          "dataQuality": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.DataQualityMetrics"
          },
          "duplicates": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.DuplicateDetectionMetrics"
          },
          "reconciliation": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.ReconciliationMetrics"
          },
          "modelDrift": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Observability.ModelDriftMetrics"
          },
          "measuredAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.ModelDriftMetrics": {
        "type": "object",
        "properties": {
          "baselineSharpe": {
            "type": "number",
            "format": "double"
          },
          "currentSharpe": {
            "type": "number",
            "format": "double"
          },
          "driftPercentage": {
            "type": "number",
            "format": "double"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Observability.ReconciliationMetrics": {
        "type": "object",
        "properties": {
          "breaksDetected": {
            "type": "integer",
            "format": "int32"
          },
          "breaksResolved": {
            "type": "integer",
            "format": "int32"
          },
          "pendingBreaks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.AlertDto": {
        "type": "object",
        "properties": {
          "alertId": {
            "type": "string",
            "format": "uuid"
          },
          "thresholdType": {
            "type": "string",
            "nullable": true
          },
          "severity": {
            "type": "string",
            "nullable": true
          },
          "currentValue": {
            "type": "number",
            "format": "double"
          },
          "threshold": {
            "type": "number",
            "format": "double"
          },
          "triggeredAt": {
            "type": "string",
            "format": "date-time"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.AlertDto08": {
        "type": "object",
        "properties": {
          "alertId": {
            "type": "string",
            "format": "uuid"
          },
          "threshold": {
            "type": "string",
            "nullable": true
          },
          "currentValue": {
            "type": "number",
            "format": "double"
          },
          "severity": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.DashboardResponse": {
        "type": "object",
        "properties": {
          "portfolioId": {
            "type": "string",
            "format": "uuid"
          },
          "snapshotDate": {
            "type": "string",
            "format": "date"
          },
          "portfolio": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PortfolioDto"
          },
          "riskMetrics": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsDto08"
          },
          "stressResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.StressResultDto08"
            },
            "nullable": true
          },
          "activeAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto08"
            },
            "nullable": true
          },
          "healthScore": {
            "type": "integer",
            "format": "int32"
          },
          "riskInsights": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.GetAlertsResponse": {
        "type": "object",
        "properties": {
          "activeAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto"
            },
            "nullable": true
          },
          "resolvedAlerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.AlertDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.PortfolioCompositionResponse": {
        "type": "object",
        "properties": {
          "portfolioId": {
            "type": "string",
            "format": "uuid"
          },
          "snapshotDate": {
            "type": "string",
            "format": "date"
          },
          "positions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PositionDto"
            },
            "nullable": true
          },
          "totalValue": {
            "type": "number",
            "format": "double"
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.PortfolioDto": {
        "type": "object",
        "properties": {
          "totalValue": {
            "type": "number",
            "format": "double"
          },
          "positions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.PositionSummaryDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.PositionDto": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "marketPrice": {
            "type": "number",
            "format": "double"
          },
          "marketValue": {
            "type": "number",
            "format": "double"
          },
          "weightPercent": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.PositionSummaryDto": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "quantity": {
            "type": "number",
            "format": "double"
          },
          "marketPrice": {
            "type": "number",
            "format": "double"
          },
          "marketValue": {
            "type": "number",
            "format": "double"
          },
          "weightPercent": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.RebalanceRequest": {
        "type": "object",
        "properties": {
          "targetWeights": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.TargetWeightDto"
            },
            "nullable": true
          },
          "driftThreshold": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.RebalanceResponse": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "estimatedTradeCount": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedCost": {
            "type": "number",
            "format": "double"
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "queuedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.RiskMetricsDto": {
        "type": "object",
        "properties": {
          "vaR95Amount": {
            "type": "number",
            "format": "double"
          },
          "vaR95Percent": {
            "type": "number",
            "format": "double"
          },
          "sharpeRatio": {
            "type": "number",
            "format": "double"
          },
          "sortinoRatio": {
            "type": "number",
            "format": "double"
          },
          "volatility": {
            "type": "number",
            "format": "double"
          },
          "topFivePercent": {
            "type": "number",
            "format": "double"
          },
          "hirschmanIndex": {
            "type": "number",
            "format": "double"
          },
          "maxSinglePosition": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.RiskMetricsDto08": {
        "type": "object",
        "properties": {
          "vaR95": {
            "type": "number",
            "format": "double"
          },
          "sharpeRatio": {
            "type": "number",
            "format": "double"
          },
          "sortinoRatio": {
            "type": "number",
            "format": "double"
          },
          "volatilityPercent": {
            "type": "number",
            "format": "double"
          },
          "topFivePercent": {
            "type": "number",
            "format": "double"
          },
          "maxPositionPercent": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.RiskMetricsResponse": {
        "type": "object",
        "properties": {
          "portfolioId": {
            "type": "string",
            "format": "uuid"
          },
          "calculationDate": {
            "type": "string",
            "format": "date"
          },
          "metrics": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.Portfolio.RiskMetricsDto"
          },
          "qualityScore": {
            "type": "integer",
            "format": "int32"
          },
          "lastUpdate": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.StressResultDto08": {
        "type": "object",
        "properties": {
          "scenario": {
            "type": "string",
            "nullable": true
          },
          "portfolioLossPercent": {
            "type": "number",
            "format": "double"
          },
          "stressedVAR": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.StressTestResponse": {
        "type": "object",
        "properties": {
          "stressTestId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "scenarioId": {
            "type": "string",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "nullable": true
          },
          "queuedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.TargetWeightDto": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "nullable": true
          },
          "targetPercent": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.Portfolio.TriggerStressTestRequest": {
        "type": "object",
        "properties": {
          "scenarioId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.GetShadowRunPollingRequest": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.GetShadowRunResponse": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metrics": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.ShadowRunMetricsDto"
          },
          "validationGates": {
            "$ref": "#/components/schemas/KArtSell.Host.Features.ShadowRun.ValidationGatesDto"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.InitiateShadowRunRequest": {
        "type": "object",
        "properties": {
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "windowStart": {
            "type": "string",
            "format": "date"
          },
          "windowEnd": {
            "type": "string",
            "format": "date"
          },
          "phaseFilter": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.InitiateShadowRunResponse": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "jobId": {
            "type": "string",
            "nullable": true
          },
          "estimatedSeconds": {
            "type": "integer",
            "format": "int32"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.ShadowRunMetricsDto": {
        "type": "object",
        "properties": {
          "totalReturn": {
            "type": "number",
            "format": "double"
          },
          "sharpeRatio": {
            "type": "number",
            "format": "double"
          },
          "calmurRatio": {
            "type": "number",
            "format": "double"
          },
          "maximumDrawdown": {
            "type": "number",
            "format": "double"
          },
          "winRate": {
            "type": "number",
            "format": "double"
          },
          "probOfBacktestOverfit": {
            "type": "number",
            "format": "double"
          },
          "dailySharePercentile": {
            "type": "number",
            "format": "double"
          },
          "tradingDays": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Host.Features.ShadowRun.ValidationGatesDto": {
        "type": "object",
        "properties": {
          "pboUnder20": {
            "type": "boolean"
          },
          "dsrAbove95": {
            "type": "boolean"
          },
          "costTwoXPositive": {
            "type": "boolean"
          },
          "allGatesPassed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Compliance.AuditEventDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "entityType": {
            "type": "string",
            "nullable": true
          },
          "entityId": {
            "type": "string",
            "format": "uuid"
          },
          "actorEmail": {
            "type": "string",
            "nullable": true
          },
          "actorRole": {
            "type": "string",
            "nullable": true
          },
          "eventAt": {
            "type": "string",
            "format": "date-time"
          },
          "result": {
            "type": "string",
            "nullable": true
          },
          "details": {
            "type": "object",
            "additionalProperties": { },
            "nullable": true
          },
          "evidenceLinks": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "publishedAt": {
            "type": "string",
            "format": "date-time"
          },
          "correlationId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Compliance.GdprRequestResponseDto": {
        "type": "object",
        "properties": {
          "gdprTrackingId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "estimatedCompletion": {
            "type": "string",
            "format": "date-time"
          },
          "message": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsRequest": {
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "eventType": {
            "type": "string",
            "nullable": true
          },
          "dateFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "dateTo": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "actorEmail": {
            "type": "string",
            "nullable": true
          },
          "skip": {
            "type": "integer",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Compliance.QueryAuditEventsResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Compliance.AuditEventDto"
            },
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "skip": {
            "type": "integer",
            "format": "int32"
          },
          "take": {
            "type": "integer",
            "format": "int32"
          },
          "pages": {
            "type": "integer",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Compliance.SubmitGdprRequestDto": {
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ActivateApprovalResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "activatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDetailResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "justification": {
            "type": "string",
            "nullable": true
          },
          "effectiveAt": {
            "type": "string",
            "format": "date"
          },
          "approvedBy": {
            "type": "string",
            "nullable": true
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "approvalNotes": {
            "type": "string",
            "nullable": true
          },
          "activatedBy": {
            "type": "string",
            "nullable": true
          },
          "activatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "createdBy": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "justification": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalRequest": {
        "type": "object",
        "properties": {
          "approvalNotes": {
            "type": "string",
            "nullable": true
          },
          "evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApproveApprovalResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.CreateApprovalResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.EvidenceDto": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "comment": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsRequest": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "nullable": true
          },
          "modelId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.GetApprovalsResponse": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ApprovalDto"
            },
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "pages": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApprovalWorkflow.ProposeForReviewResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApproveModel.Request": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "approvalReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.ApproveModel.Response": {
        "type": "object",
        "properties": {
          "approvalId": {
            "type": "string",
            "format": "uuid"
          },
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.ApprovalItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "approvedBy": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "approvalReason": {
            "type": "string",
            "nullable": true
          },
          "rejectionReason": {
            "type": "string",
            "nullable": true
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "approvedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rejectedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.Response": {
        "type": "object",
        "properties": {
          "queue": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetApprovalQueue.ApprovalItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.ModelFeedbackStageResponse": {
        "type": "object",
        "properties": {
          "order": {
            "type": "integer",
            "format": "int32"
          },
          "stageCode": {
            "type": "string",
            "nullable": true
          },
          "operationCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "automationBoundary": {
            "type": "string",
            "nullable": true
          },
          "requiredEvidence": {
            "type": "string",
            "nullable": true
          },
          "humanDecision": {
            "type": "string",
            "nullable": true
          },
          "failureAction": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.Response": {
        "type": "object",
        "properties": {
          "boundary": {
            "type": "string",
            "nullable": true
          },
          "stages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelFeedbackLoop.ModelFeedbackStageResponse"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.OperationItem": {
        "type": "object",
        "properties": {
          "operationCode": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "cadence": {
            "type": "string",
            "nullable": true
          },
          "automationMode": {
            "type": "string",
            "nullable": true
          },
          "queue": {
            "type": "string",
            "nullable": true
          },
          "primaryOwner": {
            "type": "string",
            "nullable": true
          },
          "secondaryOwner": {
            "type": "string",
            "nullable": true
          },
          "requiredEvidence": {
            "type": "string",
            "nullable": true
          },
          "output": {
            "type": "string",
            "nullable": true
          },
          "gate": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.Response": {
        "type": "object",
        "properties": {
          "algorithmStatus": {
            "type": "string",
            "nullable": true
          },
          "orderCapability": {
            "type": "string",
            "nullable": true
          },
          "modelMutationBoundary": {
            "type": "string",
            "nullable": true
          },
          "operations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Features.GetModelOperationsPlan.OperationItem"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.GetObservabilityMetrics.Response": {
        "type": "object",
        "properties": {
          "batchSla": {
            "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.BatchSlaMetrics"
          },
          "dataQuality": {
            "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.DataQualityMetrics"
          },
          "duplicates": {
            "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.DuplicateDetectionMetrics"
          },
          "reconciliation": {
            "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.ReconciliationMetrics"
          },
          "modelDrift": {
            "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.Observability.ModelDriftMetrics"
          },
          "collectedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.RejectModel.Request": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "rejectionReason": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Features.RejectModel.Response": {
        "type": "object",
        "properties": {
          "approvalId": {
            "type": "string",
            "format": "uuid"
          },
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "rejectedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Observability.BatchSlaMetrics": {
        "type": "object",
        "properties": {
          "queueDepth": {
            "type": "integer",
            "format": "int32"
          },
          "averageCompletionTimeSeconds": {
            "type": "number",
            "format": "double"
          },
          "retryRate": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Observability.DataQualityMetrics": {
        "type": "object",
        "properties": {
          "quarantineCount": {
            "type": "integer",
            "format": "int32"
          },
          "ageMinutes": {
            "type": "integer",
            "format": "int32"
          },
          "topFailureReasons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Observability.DuplicateDetectionMetrics": {
        "type": "object",
        "properties": {
          "constraintViolationCount": {
            "type": "integer",
            "format": "int32"
          },
          "lastDetected": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Observability.ModelDriftMetrics": {
        "type": "object",
        "properties": {
          "oosPerformanceValue": {
            "type": "number",
            "format": "double"
          },
          "baselineComparison": {
            "type": "number",
            "format": "double"
          },
          "degradationFlag": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.Observability.ReconciliationMetrics": {
        "type": "object",
        "properties": {
          "completenessPercentage": {
            "type": "number",
            "format": "double"
          },
          "auditRecordsCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionRequest": {
        "required": [
          "justification"
        ],
        "type": "object",
        "properties": {
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "windowStart": {
            "type": "string",
            "format": "date-time"
          },
          "windowEnd": {
            "type": "string",
            "format": "date-time"
          },
          "thresholdPbo": {
            "type": "number",
            "format": "double"
          },
          "thresholdDsr": {
            "type": "number",
            "format": "double"
          },
          "justification": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.CreateSellDecisionResponse": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "correlationId": {
            "type": "string",
            "format": "uuid"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionRequest": {
        "required": [
          "justification"
        ],
        "type": "object",
        "properties": {
          "approvalId": {
            "type": "string",
            "format": "uuid"
          },
          "executionPrice": {
            "type": "number",
            "format": "double"
          },
          "quantity": {
            "type": "integer",
            "format": "int32"
          },
          "justification": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.ExecuteSellDecisionResponse": {
        "required": [
          "kisOrderId",
          "status"
        ],
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "format": "uuid"
          },
          "executionId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "kisOrderId": {
            "type": "string",
            "nullable": true
          },
          "submittedAt": {
            "type": "string",
            "format": "date-time"
          },
          "correlationId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.ListSellDecisionsResponse": {
        "required": [
          "decisions"
        ],
        "type": "object",
        "properties": {
          "decisions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.ModelOperations.SellDecision.SellDecisionDto"
            },
            "nullable": true
          },
          "total": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.ModelOperations.SellDecision.SellDecisionDto": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "format": "uuid"
          },
          "modelId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "pboScore": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "dsrMetric": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "sellPriority": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "targetQuantity": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "targetPrice": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "approvalId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "executionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "correlationId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.SignalEngine.Domain.PolicyDisposition": {
        "enum": [
          0,
          1,
          2
        ],
        "type": "integer",
        "format": "int32"
      },
      "KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry": {
        "type": "object",
        "properties": {
          "policyId": {
            "type": "string",
            "nullable": true
          },
          "priority": {
            "type": "integer",
            "format": "int32"
          },
          "disposition": {
            "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyDisposition"
          },
          "reasonCode": {
            "type": "string",
            "nullable": true
          },
          "requestedSellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "appliedSellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "strategicCoreClampApplied": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Request": {
        "type": "object",
        "properties": {
          "positionLotId": {
            "type": "string",
            "format": "uuid"
          },
          "cycleId": {
            "type": "string",
            "format": "uuid"
          },
          "evidenceId": {
            "type": "string",
            "nullable": true
          },
          "datasetId": {
            "type": "string",
            "nullable": true
          },
          "modelVersion": {
            "type": "string",
            "nullable": true
          },
          "configVersion": {
            "type": "string",
            "nullable": true
          },
          "codeSha": {
            "type": "string",
            "nullable": true
          },
          "asOf": {
            "type": "string",
            "format": "date-time"
          },
          "publishedAtCutoff": {
            "type": "string",
            "format": "date-time"
          },
          "currentSecurityPortfolioWeight": {
            "type": "number",
            "format": "double"
          },
          "currentLotPortfolioWeight": {
            "type": "number",
            "format": "double"
          },
          "strategicCoreFloorWeight": {
            "type": "number",
            "format": "double"
          },
          "hardImpairmentApproved": {
            "type": "boolean"
          },
          "capitalFloorBreached": {
            "type": "boolean"
          },
          "survivalSellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "gapBelowFloorAtr": {
            "type": "number",
            "format": "double"
          },
          "consecutiveCloseBreaches": {
            "type": "integer",
            "format": "int32"
          },
          "cooldownSatisfied": {
            "type": "boolean"
          },
          "concentrationSellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "opportunityEdgeLowerBound": {
            "type": "number",
            "format": "double"
          },
          "opportunitySellRatioOfLot": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.SignalEngine.Features.EvaluateResearchSellPolicy.Response": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string",
            "nullable": true
          },
          "sellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "targetSecurityPortfolioWeightAfter": {
            "type": "number",
            "format": "double"
          },
          "policyId": {
            "type": "string",
            "nullable": true
          },
          "reasonCode": {
            "type": "string",
            "nullable": true
          },
          "decisionContractVersion": {
            "type": "string",
            "nullable": true
          },
          "policyTraceSchemaVersion": {
            "type": "integer",
            "format": "int32"
          },
          "reentryEligible": {
            "type": "boolean"
          },
          "policyTrace": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry"
            },
            "nullable": true
          },
          "evidenceStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Request": {
        "type": "object",
        "properties": {
          "positionLotId": {
            "type": "string",
            "format": "uuid"
          },
          "asOf": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "KArtSell.Modules.SignalEngine.Features.GenerateSellDecision.Response": {
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "format": "uuid"
          },
          "action": {
            "type": "string",
            "nullable": true
          },
          "sellRatioOfLot": {
            "type": "number",
            "format": "double"
          },
          "targetSecurityPortfolioWeightAfter": {
            "type": "number",
            "format": "double"
          },
          "policyId": {
            "type": "string",
            "nullable": true
          },
          "reasonCode": {
            "type": "string",
            "nullable": true
          },
          "evidenceId": {
            "type": "string",
            "nullable": true
          },
          "datasetId": {
            "type": "string",
            "nullable": true
          },
          "modelVersion": {
            "type": "string",
            "nullable": true
          },
          "configVersion": {
            "type": "string",
            "nullable": true
          },
          "codeSha": {
            "type": "string",
            "nullable": true
          },
          "decisionContractVersion": {
            "type": "string",
            "nullable": true
          },
          "policyTraceSchemaVersion": {
            "type": "integer",
            "format": "int32"
          },
          "reentryEligible": {
            "type": "boolean"
          },
          "policyTrace": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KArtSell.Modules.SignalEngine.Domain.PolicyTraceEntry"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "replayed": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      }
    }
  },
  "tags": [
    {
      "name": "KArtSell.Host"
    },
    {
      "name": "SignalEngine"
    }
  ]
}