{
  "$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
              }
            }
          },
          "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. 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
              },
              "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
          }
        }
      },
      "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"
            ]
          },
          "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
              },
              "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; re-arm your schedule on every judgement regardless of either, and the host folds the duplicates."
              },
              "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", "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; `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"
                  },
                  "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."
                  },
                  "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."
                  }
                },
                "required": ["review", "execution", "orders"],
                "additionalProperties": false
              }
            },
            "required": [
              "decisionId",
              "sequence",
              "asOf",
              "proposedAction",
              "action",
              "accepted",
              "conclusion",
              "armed"
            ],
            "additionalProperties": false
          }
        },
        "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. ⚠️ At most: a promise the investor cancelled carries no instant to date it by and is left out rather than guessed at, so a promise missing from this list may still be standing. ⛔ So this never licenses skipping an arm — re-arm your schedule on every judgement anyway; the host folds a promise you arm again exactly as you already hold it — same kind, subject, sentence and condition — and folds promises made for the same instant, which makes arming one you already hold cost nothing. To restate a recurring review in new words, arm it under the same `key` each time and the earlier one is replaced; each row here carries the key you gave it. Absent means this host does not say; an empty array means nothing of yours stood that it could date.",
      "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"
                    ]
                  },
                  "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
          }
        },
        "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": 2000,
            "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": 64,
            "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`, 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
          },
          "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; re-arm your schedule on every judgement regardless of either, and the host folds the duplicates."
          },
          "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", "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; `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"
              },
              "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."
              },
              "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."
              }
            },
            "required": ["review", "execution", "orders"],
            "additionalProperties": false
          }
        },
        "required": [
          "decisionId",
          "sequence",
          "asOf",
          "proposedAction",
          "action",
          "accepted",
          "conclusion",
          "armed"
        ],
        "additionalProperties": false
      }
    },
    "config": {
      "type": "object",
      "propertyNames": {
        "type": "string"
      },
      "additionalProperties": {}
    }
  },
  "required": [
    "protocol",
    "invocationId",
    "managerInstanceId",
    "runId",
    "task",
    "clock",
    "language",
    "asOf",
    "mandate",
    "portfolio",
    "theses",
    "events",
    "evidence",
    "history"
  ],
  "additionalProperties": false
}
