{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://aumos.app/spec/amp/1/manager-invocation.schema.json",
  "title": "manager-invocation",
  "type": "object",
  "properties": {
    "protocol": {
      "type": "string",
      "const": "AMP/1"
    },
    "invocationId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "managerInstanceId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "runId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "task": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "PORTFOLIO_REVIEW"
            },
            "instruction": {
              "type": "string"
            }
          },
          "required": ["kind"],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "ASSET_REVIEW"
            },
            "subject": {
              "type": "object",
              "properties": {
                "class": {
                  "type": "string",
                  "enum": ["equity", "etf", "crypto", "cash"]
                },
                "symbol": {
                  "type": "string",
                  "minLength": 1
                },
                "market": {
                  "type": "string",
                  "pattern": "^[A-Z0-9]{1,12}$",
                  "description": "MIC-style market identifier, e.g. XNAS"
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code"
                }
              },
              "required": ["class", "symbol"],
              "additionalProperties": false
            },
            "instruction": {
              "type": "string"
            }
          },
          "required": ["kind", "subject"],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "THESIS_REVIEW"
            },
            "thesisId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "instruction": {
              "type": "string"
            }
          },
          "required": ["kind", "thesisId"],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "const": "EVENT_REVIEW"
            },
            "eventId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "instruction": {
              "type": "string"
            }
          },
          "required": ["kind", "eventId"],
          "additionalProperties": false
        }
      ]
    },
    "clock": {
      "type": "object",
      "properties": {
        "now": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
          "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
          "format": "date-time"
        },
        "timezone": {
          "type": "string",
          "minLength": 1,
          "description": "IANA timezone name, e.g. Asia/Seoul"
        }
      },
      "required": ["now", "timezone"],
      "additionalProperties": false
    },
    "language": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(?:-[A-Z][a-z]{3})?(?:-(?:[A-Z]{2}|[0-9]{3}))?(?:-(?:[0-9a-zA-Z]{5,8}|[0-9][0-9a-zA-Z]{3}))*$",
      "description": "BCP-47 language tag in canonical case, e.g. ko-KR"
    },
    "asOf": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
      "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
      "format": "date-time"
    },
    "mandate": {
      "type": "object",
      "properties": {
        "mandateId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "label": {
          "type": "string",
          "minLength": 1
        },
        "objective": {
          "type": "string",
          "minLength": 1
        },
        "horizonDays": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "funding": {
          "description": "What is scheduled to leave this fund and when it stops being run. **Absent means the investor was never asked or has not answered** — `{\"kind\":\"open-ended\"}` is the different fact that they answered and nothing is scheduled. It is context for a judgement and executes nothing.",
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "const": "open-ended"
                }
              },
              "required": ["kind"],
              "additionalProperties": false
            },
            {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "const": "scheduled"
                },
                "withdrawals": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "enum": ["once", "recurring"]
                      },
                      "on": {
                        "type": "string",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "description": "A calendar date, `YYYY-MM-DD`. Not an instant: a withdrawal is scheduled on a day.",
                        "format": "date"
                      },
                      "every": {
                        "description": "How often a `recurring` withdrawal comes round. Absent on `once`.",
                        "type": "string",
                        "enum": ["monthly", "quarterly", "semiannual", "annual"]
                      },
                      "amount": {
                        "description": "What the investor expects to take out. **Absent means the amount was not stated**, which is an ordinary answer — that money leaves every quarter changes how a position is sized even before the sum exists.",
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$",
                            "description": "ISO 4217 currency code"
                          },
                          "minorUnits": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "exponent": {
                            "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 12
                          }
                        },
                        "required": ["currency", "minorUnits"],
                        "additionalProperties": false
                      }
                    },
                    "required": ["kind", "on"],
                    "additionalProperties": false
                  }
                },
                "endsOn": {
                  "description": "The day the fund stops being run. Absent means it does not.",
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                  "format": "date"
                }
              },
              "required": ["kind", "withdrawals"],
              "additionalProperties": false
            }
          ]
        },
        "constraints": {
          "type": "object",
          "properties": {
            "baseCurrency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "The investor's unit of account: the currency this mandate's objective and limits are read in. It may differ from `portfolio.baseCurrency`, which is only what that mark's amounts were translated into. Every limit here is a ratio, so a divergence moves none of them — but a price level (a stop, a target) belongs to the currency its asset is quoted in and to neither of these."
            },
            "allowedAssetClasses": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              }
            },
            "maxPositionWeight": {
              "type": "number",
              "description": "Fraction of portfolio value. 0.12 is 12%."
            },
            "cashFloor": {
              "type": "number",
              "description": "Fraction of portfolio value. 0.12 is 12%."
            },
            "maxDrawdown": {
              "type": "number",
              "description": "Fraction of portfolio value. 0.12 is 12%."
            },
            "allowShorting": {
              "type": "boolean"
            },
            "allowLeverage": {
              "type": "boolean"
            },
            "excludedSymbols": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "cashLikeSymbols": {
              "description": "Symbols the investor treats as cash (e.g. a CD-rate ETF). `maxPositionWeight` does not apply to them; every other limit does, and they are positions, not cash, so they do not count toward `cashFloor`. Absent means none.",
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "maxRiskPerPosition": {
              "description": "Loss at the stop that one position may carry, as a fraction of the fund: (average entry − stop) × units held after the buy ÷ fund value. A manager’s buy is cut to fit it and the approval screen warns above it (1% when absent); the judgement itself is never blocked.",
              "type": "number"
            }
          },
          "required": [
            "baseCurrency",
            "allowedAssetClasses",
            "allowShorting",
            "allowLeverage",
            "excludedSymbols"
          ],
          "additionalProperties": false
        },
        "effectiveFrom": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
          "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
          "format": "date-time"
        }
      },
      "required": ["mandateId", "version", "label", "objective", "constraints", "effectiveFrom"],
      "additionalProperties": false
    },
    "portfolio": {
      "type": "object",
      "properties": {
        "snapshotId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "portfolioId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 128
        },
        "asOf": {
          "type": "string",
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
          "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
          "format": "date-time"
        },
        "baseCurrency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$",
          "description": "The currency every Money in this snapshot was translated into — a property of the mark and of the accounts behind it, not of the investor. It may differ from `mandate.constraints.baseCurrency`, which is the investor's unit of account; the mandate's limits are ratios, so a divergence moves none of them, and a price level belongs to the currency its asset is quoted in rather than to either."
        },
        "totalValue": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            },
            "minorUnits": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "exponent": {
              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
              "type": "integer",
              "minimum": 0,
              "maximum": 12
            }
          },
          "required": ["currency", "minorUnits"],
          "additionalProperties": false
        },
        "cash": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            },
            "minorUnits": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "exponent": {
              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
              "type": "integer",
              "minimum": 0,
              "maximum": 12
            }
          },
          "required": ["currency", "minorUnits"],
          "additionalProperties": false
        },
        "positions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "asset": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "quantity": {
                "type": "number"
              },
              "averageCost": {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  },
                  "minorUnits": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "exponent": {
                    "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 12
                  }
                },
                "required": ["currency", "minorUnits"],
                "additionalProperties": false
              },
              "marketValue": {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  },
                  "minorUnits": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "exponent": {
                    "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 12
                  }
                },
                "required": ["currency", "minorUnits"],
                "additionalProperties": false
              },
              "weight": {
                "type": "number",
                "description": "Fraction of portfolio value. 0.12 is 12%."
              },
              "origin": {
                "description": "Where this holding comes from as far as the book's journal can say: the earliest judgement of this book, at or before asOf, that named this asset, and that judgement's own asOf — or, when this book's own fills show the holding was sold to nothing and bought again, the judgement whose order bought it again. Read over the whole journal and not over the `history.recentDecisions` window, so absence means no judgement of this book names this asset — an inherited holding — and never that a window fell short. It is not an acquisition date — read `acquisition` for that, and expect it to be absent.",
                "type": "object",
                "properties": {
                  "decisionId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "asOf": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                    "format": "date-time"
                  },
                  "managerInstanceId": {
                    "description": "Which manager instance sealed that earliest judgement — the same id `context_get` hands you for yourself, so it tells your own book-opening view of a name from another desk’s without resolving `decisionId` against `recentDecisions`, which is a window this row is likely to have fallen out of. ⛔ It is an observation and not a permission: who may act on a holding is `assignment` on `portfolio_get`, which a person writes by approving. Absent means the investor judged directly, with no manager involved.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": ["decisionId", "asOf"],
                "additionalProperties": false
              },
              "assignment": {
                "description": "Who runs this holding now — the same `assignment` `portfolio_get` carries on each position. This is ownership: a holding is yours when `state` is `assigned` and `managerInstanceId` is your own. `origin` is provenance — who first judged the name — and never who may act on it. Absent means this host does not say.",
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": ["assigned", "none", "released", "departed"],
                    "description": "`assigned` — `managerInstanceId` runs this holding · `none` — no assignment row names it (nobody was ever made its steward; not \"no judgement named it\", that is `origin`) · `released` — its steward sold out of it · `departed` — its steward was deleted."
                  },
                  "managerInstanceId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128
                      },
                      {
                        "type": "null"
                      }
                    ],
                    "description": "The instance that runs this holding when `state` is `assigned` — compare it with your own `managerInstanceId`; `null` in the other three states."
                  }
                },
                "required": ["state", "managerInstanceId"],
                "additionalProperties": false
              },
              "acquisition": {
                "description": "When this book's own filled orders opened the holding it is now carrying: the first and last order of the current episode, dated by when Aumos placed them at the venue (a fill is at or after its placement, so both are lower bounds — Aumos has no fill timestamp and no broker port on this build reports an acquisition date). Present only when this book's own fills account for the whole quantity held, so absence — an inherited holding, one bought in the investor's own broker app, one part-filled outside Aumos — means no acquisition date exists anywhere in Aumos for this position, permanently. ⛔ Do not declare an unconditional holding-period gate over positions without it: unjudgeable is not passed. Date entry from something you recorded yourself when you opened the position, or report the period as unknown.",
                "type": "object",
                "properties": {
                  "firstFillAt": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                    "format": "date-time"
                  },
                  "lastFillAt": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                    "format": "date-time"
                  }
                },
                "required": ["firstFillAt", "lastFillAt"],
                "additionalProperties": false
              }
            },
            "required": ["asset", "quantity", "averageCost", "marketValue", "weight"],
            "additionalProperties": false
          }
        },
        "heldByOtherManagers": {
          "description": "Holdings another manager runs, one line each: the asset, its weight of the whole fund, and the instance that runs it. They are not in `positions`, which holds yours and the ones nobody runs; `positions`, these and `cash` together are the fund. Read them to avoid doubling a name another desk holds and to size against the whole fund; trading one is a swap request to that manager. `portfolio_get` has every holding in full. Absent means this host does not say.",
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "asset": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "weight": {
                "type": "number",
                "description": "Fraction of portfolio value. 0.12 is 12%."
              },
              "managerInstanceId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            },
            "required": ["asset", "weight", "managerInstanceId"],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "snapshotId",
        "portfolioId",
        "asOf",
        "baseCurrency",
        "totalValue",
        "cash",
        "positions"
      ],
      "additionalProperties": false
    },
    "theses": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "thesisId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "subject": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false
          },
          "stance": {
            "type": "string",
            "enum": ["BULLISH", "BEARISH", "NEUTRAL"]
          },
          "status": {
            "type": "string",
            "enum": ["ACTIVE", "CHALLENGED", "INVALIDATED", "REALISED", "RETIRED"]
          },
          "claim": {
            "type": "string",
            "minLength": 1
          },
          "supportingReasons": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "invalidationConditions": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "evidenceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "openedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          }
        },
        "required": [
          "thesisId",
          "version",
          "subject",
          "stance",
          "status",
          "claim",
          "supportingReasons",
          "invalidationConditions",
          "evidenceIds",
          "openedAt",
          "updatedAt"
        ],
        "additionalProperties": false
      }
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "eventId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "kind": {
            "type": "string",
            "enum": [
              "earnings",
              "price-move",
              "news",
              "filing",
              "macro",
              "schedule",
              "plan-trigger",
              "manual",
              "swap-request",
              "decision-held"
            ]
          },
          "subject": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false
          },
          "occurredAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "detectedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "summary": {
            "type": "string",
            "minLength": 1
          },
          "materiality": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "evidenceIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        },
        "required": ["eventId", "kind", "occurredAt", "detectedAt", "summary", "evidenceIds"],
        "additionalProperties": false
      }
    },
    "evidence": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "evidenceId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "kind": {
            "type": "string",
            "enum": [
              "quote",
              "history",
              "market-records",
              "fundamentals",
              "filing",
              "news",
              "transcript",
              "note",
              "relayed",
              "observation"
            ]
          },
          "subject": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false
          },
          "source": {
            "type": "string",
            "minLength": 1
          },
          "publishedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "asOf": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "contentHash": {
            "type": "string",
            "pattern": "^sha256:[0-9a-f]{64}$"
          },
          "summary": {
            "type": "string"
          }
        },
        "required": ["evidenceId", "kind", "source", "asOf", "contentHash"],
        "additionalProperties": false
      }
    },
    "history": {
      "type": "object",
      "properties": {
        "recentDecisions": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "decisionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "sequence": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "asOf": {
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                "format": "date-time"
              },
              "managerInstanceId": {
                "description": "Which manager instance sealed this judgement — the same id `context_get` hands you for yourself, so compare them to tell your own past judgements from another desk’s on the same book. Absent means the investor decided directly, with no manager involved.",
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "runId": {
                "description": "The run that sealed this judgement — the `runId` your invocation carried in that run. `decision_submit` cannot hand back a `decisionId` (the judgement is sealed when the run ends), so a later run finds what it submitted here by `runId`: present means it was sealed, and a run of yours that is absent from `authoredDecisions` sealed nothing. Absent when `managerInstanceId` is, and when a conversation sealed it (`conversationId`).",
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "conversationId": {
                "description": "The conversation with the investor that sealed this judgement, where one did — present instead of `runId`. Absent exactly when `managerInstanceId` is, or when a run sealed it.",
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "subject": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "analysis": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "proposedAction": {
                "type": "string",
                "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
              },
              "action": {
                "type": "string",
                "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
              },
              "accepted": {
                "type": "boolean"
              },
              "conclusion": {
                "type": "string",
                "minLength": 1
              },
              "armed": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "planId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "kind": {
                      "type": "string",
                      "enum": ["watch", "plan"]
                    },
                    "subject": {
                      "type": "object",
                      "properties": {
                        "class": {
                          "type": "string",
                          "enum": ["equity", "etf", "crypto", "cash"]
                        },
                        "symbol": {
                          "type": "string",
                          "minLength": 1
                        },
                        "market": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{1,12}$",
                          "description": "MIC-style market identifier, e.g. XNAS"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code"
                        }
                      },
                      "required": ["class", "symbol"],
                      "additionalProperties": false
                    },
                    "intent": {
                      "type": "string",
                      "minLength": 1
                    },
                    "fate": {
                      "type": "string",
                      "enum": ["fired", "replaced", "lapsed", "missed"],
                      "description": "What became of the condition: `fired` — it came true; `replaced` — another promise of the same manager stood for that moment; `lapsed` — the horizon passed and it never came true; `missed` — an appointment whose moment came while the host was not running, so nobody woke you for it. There is no value for one still being watched."
                    },
                    "at": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                      "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                      "format": "date-time"
                    },
                    "review": {
                      "type": "string",
                      "enum": ["sealed", "this-run", "no-judgement", "unattributed"],
                      "description": "What followed a condition that fired, set only then: a judgement was `sealed` (named by reviewedByDecisionId); it woke `this-run`; a review ran and left `no-judgement`; or nothing recorded this condition as the reason, so what followed is `unattributed`."
                    },
                    "reviewedByDecisionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    }
                  },
                  "required": ["planId", "kind", "intent", "fate", "at"],
                  "additionalProperties": false
                },
                "description": "The conditions this judgement armed that are over, at or before asOf. Past tense only: a condition still being watched is absent, so this never states what is currently armed. ⛔ It is not an arming receipt and an empty array is not evidence that arming failed — a promise armed cleanly and still standing looks exactly like one never armed. What was standing at asOf is reported by `standingPlans`, which is a different field with a different tense: a promise stands until it fires, lapses or you retire it, so arm only what you add or change."
              },
              "disposition": {
                "description": "What became of this judgement after it was sealed, read at the moment this document was assembled: `review` is how far the investor got, `execution` is what its orders came to. ⛔ `accepted` above is the Kernel’s ruling alone — it is not an approval, and `review: \"approved\"` is not «an order went out». Absent means this host does not say, never that nothing happened.",
                "type": "object",
                "properties": {
                  "review": {
                    "type": "string",
                    "enum": [
                      "not-required",
                      "pending",
                      "expired",
                      "withdrawn",
                      "swap-review",
                      "approved",
                      "rejected"
                    ],
                    "description": "How far the investor has got with this judgement: `not-required` — nothing to approve (a WAIT or a WATCH, or a proposal the Kernel did not accept); `pending` — waiting on a person and still answerable; `expired` — the window closed and nobody answered; `withdrawn` — its author named it in a later judgement’s `withdrawDecisions` before anybody answered, so it is no longer a request; `swap-review` — it trades a position another manager runs and was not put to the investor because that manager has not endorsed it (read `swap`); `approved`; `rejected`. ⛔ `approved` is not «an order went out» — read `execution` for that."
                  },
                  "reviewedAt": {
                    "description": "When the person answered — present exactly when `review` is `approved` or `rejected`. Wall clock, and the only one on this row: an approval has no domain-time twin, a person clicked at a moment. An answer given after your asOf is not carried at all, so a judgement answered after your pin reads `pending`, which is what was true then.",
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "format": "date-time"
                  },
                  "reviewNote": {
                    "description": "What the person wrote when they answered, verbatim up to 500 characters (a longer note is cut and ends in …) — present only when they wrote something. On a `rejected` judgement it is usually why: read it before proposing the same thing again.",
                    "type": "string"
                  },
                  "execution": {
                    "type": "string",
                    "enum": [
                      "none",
                      "held",
                      "unsent",
                      "working",
                      "partially-filled",
                      "filled",
                      "refused",
                      "cancelled",
                      "expired",
                      "unreadable"
                    ],
                    "description": "What the orders of this judgement have come to, folded to the least finished thing true of any of them: `none` — no order row exists for it at your asOf, and beside `review: \"approved\"` that is «approved and nothing was ever recorded to send»; `held` — a row is deliberately waiting and `hold` says why; `unsent` — recorded and the venue has never been asked; `working` — the venue has it and has not finished; `partially-filled`; `filled` — every row filled; `refused` — the venue refused one; `cancelled`; `expired`; `unreadable` — a row moved after your asOf, so what it says now is after your boundary and is not read back to you."
                  },
                  "terms": {
                    "description": "The terms each order of this judgement was recorded with: the asset, the limit price (absent = market) and how long it stands. One entry per order still in play at your asOf (held, unsent, working or partially filled); absent when none is. Terms only — how far it got is `execution`.",
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "asset": {
                          "type": "object",
                          "properties": {
                            "class": {
                              "type": "string",
                              "enum": ["equity", "etf", "crypto", "cash"]
                            },
                            "symbol": {
                              "type": "string",
                              "minLength": 1
                            },
                            "market": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{1,12}$",
                              "description": "MIC-style market identifier, e.g. XNAS"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z]{3}$",
                              "description": "ISO 4217 currency code"
                            }
                          },
                          "required": ["class", "symbol"],
                          "additionalProperties": false
                        },
                        "limitPrice": {
                          "description": "The limit it was recorded with. Absent is a market order.",
                          "type": "object",
                          "properties": {
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z]{3}$",
                              "description": "ISO 4217 currency code"
                            },
                            "minorUnits": {
                              "type": "integer",
                              "minimum": -9007199254740991,
                              "maximum": 9007199254740991
                            },
                            "exponent": {
                              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 12
                            }
                          },
                          "required": ["currency", "minorUnits"],
                          "additionalProperties": false
                        },
                        "timeInForce": {
                          "type": "string",
                          "enum": ["day", "gtc"],
                          "description": "`day` — unfilled at the session close, it ends as `expired`; `gtc` — it stands until filled or cancelled."
                        }
                      },
                      "required": ["asset", "timeInForce"],
                      "additionalProperties": false
                    }
                  },
                  "orders": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991,
                    "description": "How many order rows this judgement produced at or before your asOf. ⛔ Not a size and not a quantity — it is what keeps `execution` from reading as a claim about one order when it is a fold over several. `0` is the same fact `execution: \"none\"` states."
                  },
                  "hold": {
                    "type": "object",
                    "properties": {
                      "reason": {
                        "type": "string",
                        "enum": [
                          "venue-not-open",
                          "moved-since-approval",
                          "superseded",
                          "thesis-ended",
                          "unpriced"
                        ],
                        "description": "Why it is waiting: `venue-not-open` — the venue would not take it at that hour and it goes out at the next open; `moved-since-approval` — the price left the band the judgement declared, or moved further than the mandate allows, between the approval and the send; `superseded` — a later judgement of the same manager says something different about that asset; `thesis-ended` — the thesis it cited is no longer active; `unpriced` — the price could not be measured at send time, and unmeasurable is not a pass."
                      },
                      "awaitingInvestor": {
                        "type": "boolean",
                        "description": "Whether a person still has to press something. `false` is a held order that is queued and leaves at the next open by itself; `true` means it was put to the investor and is waiting on that answer. ⛔ Neither is a licence to propose the same thing again."
                      }
                    },
                    "required": ["reason", "awaitingInvestor"],
                    "additionalProperties": false,
                    "description": "Set exactly when `execution` is `held`: why the order is waiting, and whether a person still has to answer before it can go out. A held order is a proposal already through the door — ⛔ proposing the same thing again is a duplicate, not a retry."
                  },
                  "swap": {
                    "type": "object",
                    "properties": {
                      "state": {
                        "type": "string",
                        "enum": [
                          "reviewing",
                          "endorsed",
                          "rejected",
                          "no-agreement",
                          "no-response"
                        ],
                        "description": "Where a swap request stands: `reviewing` — a manager in charge of a position it trades has not answered; `rejected` — one said no (see `reason`); `no-agreement` — refused twice within a day, so it is not retried; `endorsed` — every manager asked said yes, so it went to the investor; `no-response` — a manager ran after it and did not answer, so it went to the investor marked without that manager’s consent."
                      },
                      "reviews": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "managerInstanceId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "answer": {
                              "type": "string",
                              "enum": ["waiting", "endorse", "reject", "no-response"]
                            },
                            "reason": {
                              "type": "string"
                            }
                          },
                          "required": ["managerInstanceId", "answer"],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": ["state", "reviews"],
                    "additionalProperties": false,
                    "description": "Set exactly when this judgement trades a position another manager runs: each manager asked, its answer and its reason. Your next request on the same position can take `reason` into account; a second refusal within a day ends in `no-agreement`."
                  }
                },
                "required": ["review", "execution", "orders"],
                "additionalProperties": false
              },
              "scorecard": {
                "type": "object",
                "properties": {
                  "entryBar": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                    "format": "date-time"
                  },
                  "benchmark": {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": "string",
                        "enum": ["equity", "etf", "crypto", "cash"]
                      },
                      "symbol": {
                        "type": "string",
                        "minLength": 1
                      },
                      "market": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{1,12}$",
                        "description": "MIC-style market identifier, e.g. XNAS"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      }
                    },
                    "required": ["class", "symbol"],
                    "additionalProperties": false
                  },
                  "horizons": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "tradingDays": {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        "status": {
                          "type": "string",
                          "enum": ["measured", "no-benchmark", "no-price", "pending"]
                        },
                        "subjectReturn": {
                          "type": "number"
                        },
                        "benchmarkReturn": {
                          "type": "number"
                        },
                        "excessReturn": {
                          "type": "number"
                        }
                      },
                      "required": ["tradingDays", "status"],
                      "additionalProperties": false
                    }
                  }
                },
                "required": ["horizons"],
                "additionalProperties": false,
                "description": "What this judgement’s subject did afterwards: simple return of the fund’s stored daily closes from the last session published at its asOf (`entryBar`) to `tradingDays` sessions later, beside the same sessions of `benchmark`; `excessReturn` = subject − benchmark, all fractions. Hypothetical and before costs (no fees, taxes or slippage) — it scores the call whether or not anything was bought. `no-price` means a bar is missing and nothing was filled in; `pending` means those sessions have not traded yet."
              }
            },
            "required": [
              "decisionId",
              "sequence",
              "asOf",
              "proposedAction",
              "action",
              "accepted",
              "conclusion",
              "armed"
            ],
            "additionalProperties": false
          },
          "description": "The book’s newest few judgements, yours, the investor’s and other managers’. A row another manager sealed carries its `conclusion` cut to one line and no `analysis` — enough to know what that desk did; yours are whole, and all of yours are in `authoredDecisions`."
        },
        "totalDecisions": {
          "description": "How many judgements this book has sealed at or before asOf. `recentDecisions` is the newest few of them, so a total larger than its length means older judgements exist that you were not shown — read a holding you cannot account for as out of the window rather than unexplained, and read `positions[].origin` for the judgement that actually opened it. Absent means this host does not say, never that there are none.",
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        }
      },
      "required": ["recentDecisions"],
      "additionalProperties": false
    },
    "standingPlans": {
      "description": "The promises of yours — watches and plans — that were standing at asOf, over this book and armed by you, whether or not the judgement that armed them is still in the `history.recentDecisions` window. A promise stands until it fires, reaches its `expiresAt`, or you retire it (`retirePlans`, `retireKeys`); a later judgement that does not mention it leaves it standing, so arm only what you add or change. To change one, arm it again under the `key` it carries here and it is replaced; arming it exactly as it stands — same kind, subject, sentence and condition — folds into it. An `at-time` that woke you has fired and is not here: arm the next one. A promise the investor cancelled records no instant, so it is absent here and never reported as ended; in a replay pinned before now this list is therefore a floor. Absent means this host does not say; an empty array means nothing of yours stands.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "planId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "kind": {
            "type": "string",
            "enum": ["watch", "plan"]
          },
          "subject": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false
          },
          "intent": {
            "type": "string",
            "minLength": 1
          },
          "trigger": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "price-below"
                  },
                  "asset": {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": "string",
                        "enum": ["equity", "etf", "crypto", "cash"]
                      },
                      "symbol": {
                        "type": "string",
                        "minLength": 1
                      },
                      "market": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{1,12}$",
                        "description": "MIC-style market identifier, e.g. XNAS"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      }
                    },
                    "required": ["class", "symbol"],
                    "additionalProperties": false
                  },
                  "price": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      },
                      "minorUnits": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "exponent": {
                        "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 12
                      }
                    },
                    "required": ["currency", "minorUnits"],
                    "additionalProperties": false
                  }
                },
                "required": ["kind", "asset", "price"],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "price-above"
                  },
                  "asset": {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": "string",
                        "enum": ["equity", "etf", "crypto", "cash"]
                      },
                      "symbol": {
                        "type": "string",
                        "minLength": 1
                      },
                      "market": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{1,12}$",
                        "description": "MIC-style market identifier, e.g. XNAS"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      }
                    },
                    "required": ["class", "symbol"],
                    "additionalProperties": false
                  },
                  "price": {
                    "type": "object",
                    "properties": {
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      },
                      "minorUnits": {
                        "type": "integer",
                        "minimum": -9007199254740991,
                        "maximum": 9007199254740991
                      },
                      "exponent": {
                        "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 12
                      }
                    },
                    "required": ["currency", "minorUnits"],
                    "additionalProperties": false
                  }
                },
                "required": ["kind", "asset", "price"],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "weight-drift"
                  },
                  "asset": {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": "string",
                        "enum": ["equity", "etf", "crypto", "cash"]
                      },
                      "symbol": {
                        "type": "string",
                        "minLength": 1
                      },
                      "market": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{1,12}$",
                        "description": "MIC-style market identifier, e.g. XNAS"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      }
                    },
                    "required": ["class", "symbol"],
                    "additionalProperties": false
                  },
                  "beyond": {
                    "type": "number",
                    "description": "Fraction of portfolio value. 0.12 is 12%."
                  },
                  "baselineWeight": {
                    "description": "The portfolio weight this band is measured from. A fraction of portfolio value, where 0.12 is 12% — the weight this position had when you armed the watch — the number `portfolio_get` answered for this run, not a target weight and not a mandate cap. State it and the watch becomes self-describing: you can check before arming whether `beyond` is already exceeded, and the run this watch wakes can see what it fired against. Omit it and the baseline is whatever weight the book last recorded, so the band is measured from a line that moves with every mark and the watch cannot be checked before it is armed.",
                    "type": "number"
                  }
                },
                "required": ["kind", "asset", "beyond"],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "at-time"
                  },
                  "at": {
                    "type": "string",
                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                    "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                    "format": "date-time"
                  },
                  "rule": {
                    "type": "object",
                    "properties": {
                      "cron": {
                        "type": "string",
                        "minLength": 1
                      },
                      "timeZone": {
                        "type": "string",
                        "minLength": 1
                      }
                    },
                    "required": ["cron", "timeZone"],
                    "additionalProperties": false
                  }
                },
                "required": ["kind", "at"],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "const": "event"
                  },
                  "eventKind": {
                    "type": "string",
                    "enum": [
                      "earnings",
                      "price-move",
                      "news",
                      "filing",
                      "macro",
                      "schedule",
                      "plan-trigger",
                      "manual",
                      "swap-request",
                      "decision-held"
                    ]
                  },
                  "subject": {
                    "type": "object",
                    "properties": {
                      "class": {
                        "type": "string",
                        "enum": ["equity", "etf", "crypto", "cash"]
                      },
                      "symbol": {
                        "type": "string",
                        "minLength": 1
                      },
                      "market": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{1,12}$",
                        "description": "MIC-style market identifier, e.g. XNAS"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$",
                        "description": "ISO 4217 currency code"
                      }
                    },
                    "required": ["class", "symbol"],
                    "additionalProperties": false
                  }
                },
                "required": ["kind", "eventKind"],
                "additionalProperties": false
              }
            ]
          },
          "armedAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "armedByDecisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "expiresAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "key": {
            "description": "The `key` you gave this promise when you armed it. Arm a promise under this key again and this one is replaced, whatever its wording or condition has become. Absent means you declared no key, and then only arming it identically replaces it.",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "managerInstanceId": {
            "description": "Which manager instance armed this promise — your own `managerInstanceId` when it is yours. Absent means the investor armed it; this list never carries another desk’s.",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": ["planId", "kind", "intent", "trigger", "armedAt", "armedByDecisionId"],
        "additionalProperties": false
      }
    },
    "priceLevels": {
      "description": "The price levels of yours — the ones you wrote down with `purpose` — that were standing at asOf, over this book, whether or not the judgement that stated them is still in the `history.recentDecisions` window. ⚠️ READ THIS BEFORE YOU SEND `priceLevels` ON A JUDGEMENT: a list you send REPLACES this whole set, so a level here that you do not repeat is released. ⛔ Yours only — another manager’s levels and the investor’s own are in their own sets, are untouched by anything you send, and are not in this list. Absent means this host does not say; an empty array means nothing of yours stood.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "purpose": {
            "type": "string",
            "enum": ["entry", "stop", "take-profit"],
            "description": "What this price is for: `entry` is where you would buy, `stop` is where the judgement is wrong, `take-profit` is where you would take profit. Aumos never infers this — not from `price-below` vs `price-above`, not from whether the position is held, and not from any prose — so a purpose you do not state is a line nothing can name."
          },
          "asset": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false,
            "description": "The asset this price is about, in full. Give `market` and `currency`: the same symbol is two assets on two boards, and a level filed against a bare symbol cannot be matched to a holding without guessing which one you meant."
          },
          "price": {
            "anyOf": [
              {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "point"
                      },
                      "value": {
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$",
                            "description": "ISO 4217 currency code"
                          },
                          "minorUnits": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "exponent": {
                            "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 12
                          }
                        },
                        "required": ["currency", "minorUnits"],
                        "additionalProperties": false
                      }
                    },
                    "required": ["kind", "value"],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "type": "string",
                        "const": "band"
                      },
                      "low": {
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$",
                            "description": "ISO 4217 currency code"
                          },
                          "minorUnits": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "exponent": {
                            "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 12
                          }
                        },
                        "required": ["currency", "minorUnits"],
                        "additionalProperties": false
                      },
                      "high": {
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$",
                            "description": "ISO 4217 currency code"
                          },
                          "minorUnits": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "exponent": {
                            "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 12
                          }
                        },
                        "required": ["currency", "minorUnits"],
                        "additionalProperties": false
                      }
                    },
                    "required": ["kind", "low", "high"],
                    "additionalProperties": false
                  }
                ]
              },
              {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  },
                  "minorUnits": {
                    "type": "integer",
                    "minimum": -9007199254740991,
                    "maximum": 9007199254740991
                  },
                  "exponent": {
                    "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 12
                  }
                },
                "required": ["currency", "minorUnits"],
                "additionalProperties": false
              }
            ],
            "description": "The level itself — a bare Money for a single price (the same shape a `price-below` trigger takes; it is read as `{\"kind\":\"point\",…}`), `{\"kind\":\"point\",\"value\":…}` for the same thing written out, or `{\"kind\":\"band\",\"low\":…,\"high\":…}` for a range you would work across. Money, so the currency and the decimal precision are yours: a level of 0.0000094 USD survives, and nothing rounds it to a cent. A band is never collapsed to one number, so send a band when a band is what you concluded."
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8000,
            "description": "Why this price, in your own words. Carried verbatim and never translated — it is read beside the level by the person whose money this is."
          },
          "thesisRefs": {
            "maxItems": 256,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "description": "The theses this level rests on, as `thesisId@version`, when it rests on one. Same spelling as the proposal-level field and the same meaning, one scope narrower."
          },
          "expiresAt": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "When this level stops standing on its own. Absent, it stands until a later judgement of yours replaces it — see `priceLevels` for what replaces what.",
            "format": "date-time"
          },
          "armedKey": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "The `key` of one of this same proposal's `watches` or `plans` — or of a promise of yours already standing on this fund under that key, so an unchanged watch need not be armed again — when this level is the line that watch opens or is watching. ANY trigger may be named, including `event`, `at-time` and `weight-drift` — that is how you say “this band applies once that happens”. The link is checked, not assumed: where the trigger names an asset it must be this level’s asset, and where it fires at a price that price must be inside this level. Omit it and the level is simply recorded — writing a price down arms nothing, and no watch, plan or order is created on your behalf."
          }
        },
        "required": ["purpose", "asset", "price", "reason"],
        "additionalProperties": false
      }
    },
    "authoredDecisions": {
      "description": "Every judgement YOU sealed on this book at or before asOf, newest first, whether or not it is still in the `history.recentDecisions` window — each row exactly as that window carries it, with `disposition` (what the investor and the venue did with it) and `armed` (what became of the promises it armed). ⛔ Yours only: the investor’s and other managers’ judgements are in `recentDecisions`. Absent means this host does not say; an empty array means you have sealed nothing here.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "sequence": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "asOf": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "managerInstanceId": {
            "description": "Which manager instance sealed this judgement — the same id `context_get` hands you for yourself, so compare them to tell your own past judgements from another desk’s on the same book. Absent means the investor decided directly, with no manager involved.",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "runId": {
            "description": "The run that sealed this judgement — the `runId` your invocation carried in that run. `decision_submit` cannot hand back a `decisionId` (the judgement is sealed when the run ends), so a later run finds what it submitted here by `runId`: present means it was sealed, and a run of yours that is absent from `authoredDecisions` sealed nothing. Absent when `managerInstanceId` is, and when a conversation sealed it (`conversationId`).",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "conversationId": {
            "description": "The conversation with the investor that sealed this judgement, where one did — present instead of `runId`. Absent exactly when `managerInstanceId` is, or when a run sealed it.",
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "subject": {
            "type": "object",
            "properties": {
              "class": {
                "type": "string",
                "enum": ["equity", "etf", "crypto", "cash"]
              },
              "symbol": {
                "type": "string",
                "minLength": 1
              },
              "market": {
                "type": "string",
                "pattern": "^[A-Z0-9]{1,12}$",
                "description": "MIC-style market identifier, e.g. XNAS"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "description": "ISO 4217 currency code"
              }
            },
            "required": ["class", "symbol"],
            "additionalProperties": false
          },
          "analysis": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "proposedAction": {
            "type": "string",
            "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
          },
          "action": {
            "type": "string",
            "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
          },
          "accepted": {
            "type": "boolean"
          },
          "conclusion": {
            "type": "string",
            "minLength": 1
          },
          "armed": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "planId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "kind": {
                  "type": "string",
                  "enum": ["watch", "plan"]
                },
                "subject": {
                  "type": "object",
                  "properties": {
                    "class": {
                      "type": "string",
                      "enum": ["equity", "etf", "crypto", "cash"]
                    },
                    "symbol": {
                      "type": "string",
                      "minLength": 1
                    },
                    "market": {
                      "type": "string",
                      "pattern": "^[A-Z0-9]{1,12}$",
                      "description": "MIC-style market identifier, e.g. XNAS"
                    },
                    "currency": {
                      "type": "string",
                      "pattern": "^[A-Z]{3}$",
                      "description": "ISO 4217 currency code"
                    }
                  },
                  "required": ["class", "symbol"],
                  "additionalProperties": false
                },
                "intent": {
                  "type": "string",
                  "minLength": 1
                },
                "fate": {
                  "type": "string",
                  "enum": ["fired", "replaced", "lapsed", "missed"],
                  "description": "What became of the condition: `fired` — it came true; `replaced` — another promise of the same manager stood for that moment; `lapsed` — the horizon passed and it never came true; `missed` — an appointment whose moment came while the host was not running, so nobody woke you for it. There is no value for one still being watched."
                },
                "at": {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                  "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                  "format": "date-time"
                },
                "review": {
                  "type": "string",
                  "enum": ["sealed", "this-run", "no-judgement", "unattributed"],
                  "description": "What followed a condition that fired, set only then: a judgement was `sealed` (named by reviewedByDecisionId); it woke `this-run`; a review ran and left `no-judgement`; or nothing recorded this condition as the reason, so what followed is `unattributed`."
                },
                "reviewedByDecisionId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                }
              },
              "required": ["planId", "kind", "intent", "fate", "at"],
              "additionalProperties": false
            },
            "description": "The conditions this judgement armed that are over, at or before asOf. Past tense only: a condition still being watched is absent, so this never states what is currently armed. ⛔ It is not an arming receipt and an empty array is not evidence that arming failed — a promise armed cleanly and still standing looks exactly like one never armed. What was standing at asOf is reported by `standingPlans`, which is a different field with a different tense: a promise stands until it fires, lapses or you retire it, so arm only what you add or change."
          },
          "disposition": {
            "description": "What became of this judgement after it was sealed, read at the moment this document was assembled: `review` is how far the investor got, `execution` is what its orders came to. ⛔ `accepted` above is the Kernel’s ruling alone — it is not an approval, and `review: \"approved\"` is not «an order went out». Absent means this host does not say, never that nothing happened.",
            "type": "object",
            "properties": {
              "review": {
                "type": "string",
                "enum": [
                  "not-required",
                  "pending",
                  "expired",
                  "withdrawn",
                  "swap-review",
                  "approved",
                  "rejected"
                ],
                "description": "How far the investor has got with this judgement: `not-required` — nothing to approve (a WAIT or a WATCH, or a proposal the Kernel did not accept); `pending` — waiting on a person and still answerable; `expired` — the window closed and nobody answered; `withdrawn` — its author named it in a later judgement’s `withdrawDecisions` before anybody answered, so it is no longer a request; `swap-review` — it trades a position another manager runs and was not put to the investor because that manager has not endorsed it (read `swap`); `approved`; `rejected`. ⛔ `approved` is not «an order went out» — read `execution` for that."
              },
              "reviewedAt": {
                "description": "When the person answered — present exactly when `review` is `approved` or `rejected`. Wall clock, and the only one on this row: an approval has no domain-time twin, a person clicked at a moment. An answer given after your asOf is not carried at all, so a judgement answered after your pin reads `pending`, which is what was true then.",
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                "format": "date-time"
              },
              "reviewNote": {
                "description": "What the person wrote when they answered, verbatim up to 500 characters (a longer note is cut and ends in …) — present only when they wrote something. On a `rejected` judgement it is usually why: read it before proposing the same thing again.",
                "type": "string"
              },
              "execution": {
                "type": "string",
                "enum": [
                  "none",
                  "held",
                  "unsent",
                  "working",
                  "partially-filled",
                  "filled",
                  "refused",
                  "cancelled",
                  "expired",
                  "unreadable"
                ],
                "description": "What the orders of this judgement have come to, folded to the least finished thing true of any of them: `none` — no order row exists for it at your asOf, and beside `review: \"approved\"` that is «approved and nothing was ever recorded to send»; `held` — a row is deliberately waiting and `hold` says why; `unsent` — recorded and the venue has never been asked; `working` — the venue has it and has not finished; `partially-filled`; `filled` — every row filled; `refused` — the venue refused one; `cancelled`; `expired`; `unreadable` — a row moved after your asOf, so what it says now is after your boundary and is not read back to you."
              },
              "terms": {
                "description": "The terms each order of this judgement was recorded with: the asset, the limit price (absent = market) and how long it stands. One entry per order still in play at your asOf (held, unsent, working or partially filled); absent when none is. Terms only — how far it got is `execution`.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "asset": {
                      "type": "object",
                      "properties": {
                        "class": {
                          "type": "string",
                          "enum": ["equity", "etf", "crypto", "cash"]
                        },
                        "symbol": {
                          "type": "string",
                          "minLength": 1
                        },
                        "market": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{1,12}$",
                          "description": "MIC-style market identifier, e.g. XNAS"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code"
                        }
                      },
                      "required": ["class", "symbol"],
                      "additionalProperties": false
                    },
                    "limitPrice": {
                      "description": "The limit it was recorded with. Absent is a market order.",
                      "type": "object",
                      "properties": {
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code"
                        },
                        "minorUnits": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "exponent": {
                          "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 12
                        }
                      },
                      "required": ["currency", "minorUnits"],
                      "additionalProperties": false
                    },
                    "timeInForce": {
                      "type": "string",
                      "enum": ["day", "gtc"],
                      "description": "`day` — unfilled at the session close, it ends as `expired`; `gtc` — it stands until filled or cancelled."
                    }
                  },
                  "required": ["asset", "timeInForce"],
                  "additionalProperties": false
                }
              },
              "orders": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "How many order rows this judgement produced at or before your asOf. ⛔ Not a size and not a quantity — it is what keeps `execution` from reading as a claim about one order when it is a fold over several. `0` is the same fact `execution: \"none\"` states."
              },
              "hold": {
                "type": "object",
                "properties": {
                  "reason": {
                    "type": "string",
                    "enum": [
                      "venue-not-open",
                      "moved-since-approval",
                      "superseded",
                      "thesis-ended",
                      "unpriced"
                    ],
                    "description": "Why it is waiting: `venue-not-open` — the venue would not take it at that hour and it goes out at the next open; `moved-since-approval` — the price left the band the judgement declared, or moved further than the mandate allows, between the approval and the send; `superseded` — a later judgement of the same manager says something different about that asset; `thesis-ended` — the thesis it cited is no longer active; `unpriced` — the price could not be measured at send time, and unmeasurable is not a pass."
                  },
                  "awaitingInvestor": {
                    "type": "boolean",
                    "description": "Whether a person still has to press something. `false` is a held order that is queued and leaves at the next open by itself; `true` means it was put to the investor and is waiting on that answer. ⛔ Neither is a licence to propose the same thing again."
                  }
                },
                "required": ["reason", "awaitingInvestor"],
                "additionalProperties": false,
                "description": "Set exactly when `execution` is `held`: why the order is waiting, and whether a person still has to answer before it can go out. A held order is a proposal already through the door — ⛔ proposing the same thing again is a duplicate, not a retry."
              },
              "swap": {
                "type": "object",
                "properties": {
                  "state": {
                    "type": "string",
                    "enum": ["reviewing", "endorsed", "rejected", "no-agreement", "no-response"],
                    "description": "Where a swap request stands: `reviewing` — a manager in charge of a position it trades has not answered; `rejected` — one said no (see `reason`); `no-agreement` — refused twice within a day, so it is not retried; `endorsed` — every manager asked said yes, so it went to the investor; `no-response` — a manager ran after it and did not answer, so it went to the investor marked without that manager’s consent."
                  },
                  "reviews": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "managerInstanceId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "answer": {
                          "type": "string",
                          "enum": ["waiting", "endorse", "reject", "no-response"]
                        },
                        "reason": {
                          "type": "string"
                        }
                      },
                      "required": ["managerInstanceId", "answer"],
                      "additionalProperties": false
                    }
                  }
                },
                "required": ["state", "reviews"],
                "additionalProperties": false,
                "description": "Set exactly when this judgement trades a position another manager runs: each manager asked, its answer and its reason. Your next request on the same position can take `reason` into account; a second refusal within a day ends in `no-agreement`."
              }
            },
            "required": ["review", "execution", "orders"],
            "additionalProperties": false
          },
          "scorecard": {
            "type": "object",
            "properties": {
              "entryBar": {
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
                "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
                "format": "date-time"
              },
              "benchmark": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "horizons": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "tradingDays": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "status": {
                      "type": "string",
                      "enum": ["measured", "no-benchmark", "no-price", "pending"]
                    },
                    "subjectReturn": {
                      "type": "number"
                    },
                    "benchmarkReturn": {
                      "type": "number"
                    },
                    "excessReturn": {
                      "type": "number"
                    }
                  },
                  "required": ["tradingDays", "status"],
                  "additionalProperties": false
                }
              }
            },
            "required": ["horizons"],
            "additionalProperties": false,
            "description": "What this judgement’s subject did afterwards: simple return of the fund’s stored daily closes from the last session published at its asOf (`entryBar`) to `tradingDays` sessions later, beside the same sessions of `benchmark`; `excessReturn` = subject − benchmark, all fractions. Hypothetical and before costs (no fees, taxes or slippage) — it scores the call whether or not anything was bought. `no-price` means a bar is missing and nothing was filled in; `pending` means those sessions have not traded yet."
          }
        },
        "required": [
          "decisionId",
          "sequence",
          "asOf",
          "proposedAction",
          "action",
          "accepted",
          "conclusion",
          "armed"
        ],
        "additionalProperties": false
      }
    },
    "swapRequests": {
      "description": "Swap requests waiting on YOUR answer: another manager’s judgement that trades a position you run is not put to the investor until you seal `swapReviews: [{decisionId, verdict: \"endorse\"|\"reject\", reason}]`. `positions` are the ones of yours it trades. Absent means this host does not say; `[]` means nothing waits on you.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "decisionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "sequence": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "asOf": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,9})?(?:Z|[+-]\\d{2}:\\d{2})$",
            "description": "RFC 3339 timestamp, e.g. 2026-08-04T13:24:59.000Z",
            "format": "date-time"
          },
          "requestedBy": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "conclusion": {
            "type": "string"
          },
          "targets": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "const": "position-weight"
                    },
                    "asset": {
                      "type": "object",
                      "properties": {
                        "class": {
                          "type": "string",
                          "enum": ["equity", "etf", "crypto", "cash"]
                        },
                        "symbol": {
                          "type": "string",
                          "minLength": 1
                        },
                        "market": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{1,12}$",
                          "description": "MIC-style market identifier, e.g. XNAS"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code"
                        }
                      },
                      "required": ["class", "symbol"],
                      "additionalProperties": false
                    },
                    "targetWeight": {
                      "type": "number",
                      "description": "Fraction of portfolio value. 0.12 is 12%."
                    }
                  },
                  "required": ["type", "asset", "targetWeight"],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "const": "cash-weight"
                    },
                    "targetWeight": {
                      "type": "number",
                      "description": "Fraction of portfolio value. 0.12 is 12%."
                    }
                  },
                  "required": ["type", "targetWeight"],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "const": "exit"
                    },
                    "asset": {
                      "type": "object",
                      "properties": {
                        "class": {
                          "type": "string",
                          "enum": ["equity", "etf", "crypto", "cash"]
                        },
                        "symbol": {
                          "type": "string",
                          "minLength": 1
                        },
                        "market": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{1,12}$",
                          "description": "MIC-style market identifier, e.g. XNAS"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z]{3}$",
                          "description": "ISO 4217 currency code"
                        }
                      },
                      "required": ["class", "symbol"],
                      "additionalProperties": false
                    }
                  },
                  "required": ["type", "asset"],
                  "additionalProperties": false
                }
              ]
            }
          },
          "positions": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "class": {
                  "type": "string",
                  "enum": ["equity", "etf", "crypto", "cash"]
                },
                "symbol": {
                  "type": "string",
                  "minLength": 1
                },
                "market": {
                  "type": "string",
                  "pattern": "^[A-Z0-9]{1,12}$",
                  "description": "MIC-style market identifier, e.g. XNAS"
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code"
                }
              },
              "required": ["class", "symbol"],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "decisionId",
          "sequence",
          "asOf",
          "requestedBy",
          "conclusion",
          "targets",
          "positions"
        ],
        "additionalProperties": false
      }
    },
    "decisionScorecard": {
      "type": "object",
      "properties": {
        "scored": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "horizons": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "tradingDays": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "measured": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "noBenchmark": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "noPrice": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "pending": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "byAction": {
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "action": {
                      "type": "string",
                      "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
                    },
                    "count": {
                      "type": "integer",
                      "exclusiveMinimum": 0,
                      "maximum": 9007199254740991
                    },
                    "meanExcessReturn": {
                      "type": "number"
                    }
                  },
                  "required": ["action", "count", "meanExcessReturn"],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "tradingDays",
              "measured",
              "noBenchmark",
              "noPrice",
              "pending",
              "byAction"
            ],
            "additionalProperties": false
          }
        },
        "best": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "decisionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "sequence": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "action": {
                "type": "string",
                "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
              },
              "subject": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "tradingDays": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "excessReturn": {
                "type": "number"
              }
            },
            "required": [
              "decisionId",
              "sequence",
              "action",
              "subject",
              "tradingDays",
              "excessReturn"
            ],
            "additionalProperties": false
          }
        },
        "worst": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "decisionId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "sequence": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "action": {
                "type": "string",
                "enum": ["WAIT", "WATCH", "BUY", "SELL", "RESIZE", "HEDGE", "REBALANCE"]
              },
              "subject": {
                "type": "object",
                "properties": {
                  "class": {
                    "type": "string",
                    "enum": ["equity", "etf", "crypto", "cash"]
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1
                  },
                  "market": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{1,12}$",
                    "description": "MIC-style market identifier, e.g. XNAS"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$",
                    "description": "ISO 4217 currency code"
                  }
                },
                "required": ["class", "symbol"],
                "additionalProperties": false
              },
              "tradingDays": {
                "type": "integer",
                "exclusiveMinimum": 0,
                "maximum": 9007199254740991
              },
              "excessReturn": {
                "type": "number"
              }
            },
            "required": [
              "decisionId",
              "sequence",
              "action",
              "subject",
              "tradingDays",
              "excessReturn"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": ["scored", "horizons", "best", "worst"],
      "additionalProperties": false,
      "description": "Your own judgements scored afterwards: per horizon (in the subject’s trading sessions) how many were `measured` against the benchmark, how many lacked a benchmark mark or a price (`noPrice` — never filled in), how many are still `pending`, and the mean excess return (subject − benchmark, a fraction) per action. For a SELL a negative excess means the call was right; WATCH and WAIT carry no direction. `best`/`worst` are up to three BUY and SELL judgements that were right / wrong by excess in the call’s direction at their longest measured horizon. Hypothetical, before costs (no fees, taxes or slippage) — it scores the call, not your fills. Each judgement’s own numbers are `scorecard` on its `authoredDecisions` row. Absent means this host does not say."
    },
    "assignedPnl": {
      "type": "object",
      "properties": {
        "currency": {
          "type": "string"
        },
        "benchmark": {
          "type": "object",
          "properties": {
            "class": {
              "type": "string",
              "enum": ["equity", "etf", "crypto", "cash"]
            },
            "symbol": {
              "type": "string",
              "minLength": 1
            },
            "market": {
              "type": "string",
              "pattern": "^[A-Z0-9]{1,12}$",
              "description": "MIC-style market identifier, e.g. XNAS"
            },
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            }
          },
          "required": ["class", "symbol"],
          "additionalProperties": false
        },
        "open": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "closed": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "realised": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            },
            "minorUnits": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "exponent": {
              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
              "type": "integer",
              "minimum": 0,
              "maximum": 12
            }
          },
          "required": ["currency", "minorUnits"],
          "additionalProperties": false
        },
        "unrealised": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            },
            "minorUnits": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "exponent": {
              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
              "type": "integer",
              "minimum": 0,
              "maximum": 12
            }
          },
          "required": ["currency", "minorUnits"],
          "additionalProperties": false
        },
        "handedOver": {
          "type": "object",
          "properties": {
            "currency": {
              "type": "string",
              "pattern": "^[A-Z]{3}$",
              "description": "ISO 4217 currency code"
            },
            "minorUnits": {
              "type": "integer",
              "minimum": -9007199254740991,
              "maximum": 9007199254740991
            },
            "exponent": {
              "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
              "type": "integer",
              "minimum": 0,
              "maximum": 12
            }
          },
          "required": ["currency", "minorUnits"],
          "additionalProperties": false
        },
        "unmeasured": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "vsBenchmark": {
          "type": "object",
          "properties": {
            "segments": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "pnl": {
              "type": "object",
              "properties": {
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code"
                },
                "minorUnits": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "exponent": {
                  "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 12
                }
              },
              "required": ["currency", "minorUnits"],
              "additionalProperties": false
            },
            "benchmarkPnl": {
              "type": "object",
              "properties": {
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$",
                  "description": "ISO 4217 currency code"
                },
                "minorUnits": {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                "exponent": {
                  "description": "Decimal places the count is in. Omitted = the currency's minor unit.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 12
                }
              },
              "required": ["currency", "minorUnits"],
              "additionalProperties": false
            }
          },
          "required": ["segments", "pnl", "benchmarkPnl"],
          "additionalProperties": false
        },
        "noBenchmark": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "otherCurrency": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "untracked": {
          "type": "integer",
          "minimum": 0,
          "maximum": 9007199254740991
        },
        "trades": {
          "type": "object",
          "properties": {
            "closed": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "minClosed": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "wins": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "losses": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "breakEven": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "avgWin": {
              "type": "number"
            },
            "avgLoss": {
              "type": "number"
            },
            "payoff": {
              "type": "number"
            },
            "breakEvenPayoff": {
              "type": "number"
            },
            "withR": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "avgR": {
              "type": "number"
            },
            "line": {
              "type": "string"
            }
          },
          "required": ["closed", "minClosed", "wins", "losses", "breakEven", "withR", "line"],
          "additionalProperties": false,
          "description": "Your closed spans as trades: a span counts once, when a sale empties it — a partial sale adds to that span, an extra buy averages into it, a re-entry after selling out is a new one; a hand-over or a span still open is not a trade. `wins`/`losses`/`breakEven` by its realised money (exactly 0 is even, and counts in `closed`). `avgWin`/`avgLoss` are mean returns on the span’s cost (fractions), `payoff` = avgWin / |avgLoss|, `breakEvenPayoff` = (1 − p) / p with p = wins / closed — a payoff above it has paid. Realised R only where the judgement behind the opening buy named exactly one `stop` point for that asset: (return) / ((entry − stop) / entry); `withR` counts those, and no R is guessed. Below `minClosed` closed spans (or that many with R) the averages are left out and `line` says insufficient. Actual fills, before fees and taxes. Nothing approves or limits anything by it."
        }
      },
      "required": [
        "currency",
        "open",
        "closed",
        "realised",
        "unrealised",
        "handedOver",
        "unmeasured",
        "noBenchmark",
        "otherCurrency",
        "untracked"
      ],
      "additionalProperties": false,
      "description": "The money the positions you were assigned actually made, in the book currency: `realised` from your fills (sale − moving-average cost), `unrealised` for what you still hold at its mark at `asOf`, `handedOver` for what you held when the assignment moved to someone else, frozen at that mark. A holding counts from your assignment (at its mark) or your first buy under it, to the sale, the hand-over or `asOf`; `open` and `closed` count those spans. `vsBenchmark` puts the same spans side by side with the same money put into and taken out of the benchmark at the same moments (`pnl` is those spans’ realised plus marked money, `benchmarkPnl` the benchmark’s). Counted, never filled in: `unmeasured` (no cost or no matching mark), `noBenchmark` (a benchmark mark missing), `otherCurrency` (a fill in another currency with no rate from the mark before it — with one, it is converted at that rate), `untracked` (a sale of nothing this record saw opened). Not the scorecard: this is the money, not the call. Absent means this host does not say."
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "protocol",
    "invocationId",
    "managerInstanceId",
    "runId",
    "task",
    "clock",
    "language",
    "asOf",
    "mandate",
    "portfolio",
    "theses",
    "events",
    "evidence",
    "history"
  ],
  "additionalProperties": false
}
