{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/fincept-in/json-schema/fincept-in-profile-update-schema.json",
  "title": "ProfileUpdate",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/fincept-in-agent-profile-api-openapi.yml#/components/schemas/ProfileUpdate",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 100
        },
        {
          "type": "null"
        }
      ],
      "title": "Name"
    },
    "is_default": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Is Default"
    },
    "profile_data": {
      "anyOf": [
        {
          "$ref": "#/$defs/ProfileData"
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "type": "object",
  "$defs": {
    "ProfileData": {
      "properties": {
        "risk_tolerance": {
          "type": "string",
          "title": "Risk Tolerance",
          "description": "conservative | moderate | aggressive | very_aggressive"
        },
        "max_drawdown_pct": {
          "type": "number",
          "maximum": 100.0,
          "minimum": 1.0,
          "title": "Max Drawdown Pct",
          "description": "Max acceptable drawdown %"
        },
        "stop_loss_pct": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 100.0,
              "minimum": 1.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Stop Loss Pct"
        },
        "investment_horizon": {
          "type": "string",
          "title": "Investment Horizon",
          "description": "short | medium | long"
        },
        "capital_range": {
          "type": "string",
          "title": "Capital Range",
          "description": "Capital bracket e.g. $10k-$100k"
        },
        "asset_classes": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Asset Classes",
          "description": "equities, fixed_income, crypto, commodities, forex, real_estate"
        },
        "trading_frequency": {
          "type": "string",
          "title": "Trading Frequency",
          "description": "daily | weekly | monthly | quarterly"
        },
        "leverage_comfort": {
          "type": "string",
          "title": "Leverage Comfort",
          "description": "none | low | moderate | high"
        },
        "primary_goal": {
          "type": "string",
          "title": "Primary Goal",
          "description": "growth | income | preservation | speculation"
        },
        "target_return_pct": {
          "anyOf": [
            {
              "type": "number",
              "maximum": 500.0,
              "minimum": 0.0
            },
            {
              "type": "null"
            }
          ],
          "title": "Target Return Pct"
        },
        "benchmark": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Benchmark",
          "description": "SPY, QQQ, AGG, etc."
        },
        "excluded_sectors": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Excluded Sectors"
        },
        "esg_preference": {
          "type": "string",
          "title": "Esg Preference",
          "description": "none | preferred | required",
          "default": "none"
        },
        "geographic_focus": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Geographic Focus",
          "description": "US, EU, Asia, EM, Global"
        },
        "experience_years": {
          "type": "integer",
          "minimum": 0.0,
          "title": "Experience Years",
          "default": 0
        },
        "knowledge_level": {
          "type": "string",
          "title": "Knowledge Level",
          "description": "beginner | intermediate | advanced | professional",
          "default": "beginner"
        }
      },
      "type": "object",
      "required": [
        "risk_tolerance",
        "max_drawdown_pct",
        "investment_horizon",
        "capital_range",
        "asset_classes",
        "trading_frequency",
        "leverage_comfort",
        "primary_goal"
      ],
      "title": "ProfileData"
    }
  }
}