{
  "schemaVersion": 1,
  "toolPages": [
    {
      "name": "venue.list_projects",
      "path": "/docs/reference-tool-venue-list-projects",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "PROJECT_TOOL_UNAVAILABLE",
        "PROJECT_NOT_FOUND"
      ],
      "outputFields": [
        "source",
        "projects[]"
      ],
      "stableIds": [
        "projects[].id",
        "projects[].activePlanId"
      ]
    },
    {
      "name": "venue.open_project",
      "path": "/docs/reference-tool-venue-open-project",
      "requiredFields": [
        "projectId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "PROJECT_TOOL_UNAVAILABLE",
        "PROJECT_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "project"
      ],
      "stableIds": [
        "project.id",
        "project.activePlanId"
      ]
    },
    {
      "name": "venue.inspect_templates",
      "path": "/docs/reference-tool-venue-inspect-templates",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "schemaVersion",
        "venueTemplates[]",
        "roomTemplates[]",
        "inventoryTemplates[]"
      ],
      "stableIds": [
        "venueTemplates[].id",
        "roomTemplates[].id",
        "inventoryTemplates[].id"
      ]
    },
    {
      "name": "venue.get_project_brief",
      "path": "/docs/reference-tool-venue-get-project-brief",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "id",
        "eventName",
        "date",
        "timezone",
        "venueId",
        "roomId",
        "attendeeTarget",
        "occupancyMode",
        "schedule",
        "planningEffectBindings",
        "requirements[]",
        "coverage",
        "coverageMatrix",
        "ambiguities[]",
        "summary"
      ],
      "stableIds": [
        "id",
        "planningEffectBindings.*.targetRequirementId",
        "planningEffectBindings.*.affectedConstraintIds[]",
        "requirements[].id",
        "coverageMatrix[].constraintId"
      ]
    },
    {
      "name": "venue.list_constraints",
      "path": "/docs/reference-tool-venue-list-constraints",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].checkId"
      ]
    },
    {
      "name": "venue.inspect_layout",
      "path": "/docs/reference-tool-venue-inspect-layout",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "planId",
        "planVersion",
        "event",
        "venue",
        "templateBindings",
        "inventoryAvailability",
        "occupancy",
        "staffing",
        "productionPolicy",
        "cateringPolicy",
        "emergencyPlan",
        "emergencyReviews",
        "spatial",
        "spatialObjects[]",
        "lockedObjects[]",
        "projectLocks[]",
        "comments[]",
        "scenarios[]",
        "scenarioRuns[]",
        "constraints[]",
        "metrics",
        "proposal",
        "activeBranchId",
        "proposalBranches[]",
        "commandReceiptCount",
        "ledgerIntegrity",
        "brief"
      ],
      "stableIds": [
        "planId",
        "spatialObjects[].id",
        "constraints[].id",
        "proposal.id",
        "proposal.changes[].id",
        "activeBranchId",
        "proposalBranches[].id"
      ]
    },
    {
      "name": "venue.get_object",
      "path": "/docs/reference-tool-venue-get-object",
      "requiredFields": [
        "objectId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "OBJECT_NOT_FOUND"
      ],
      "outputFields": [
        "scope",
        "planId",
        "planVersion",
        "proposalId",
        "object"
      ],
      "stableIds": [
        "planId",
        "proposalId",
        "object.id"
      ]
    },
    {
      "name": "venue.search_objects",
      "path": "/docs/reference-tool-venue-search-objects",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "scope",
        "planId",
        "planVersion",
        "proposalId",
        "total",
        "limit",
        "truncated",
        "objects[]"
      ],
      "stableIds": [
        "planId",
        "proposalId",
        "objects[].id"
      ]
    },
    {
      "name": "venue.preview_revision",
      "path": "/docs/reference-tool-venue-preview-revision",
      "requiredFields": [
        "goal",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "baseVersion",
        "revision",
        "changedItems",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "receipt.id",
        "receipt.resultIds.changeId"
      ]
    },
    {
      "name": "venue.preview_template_update",
      "path": "/docs/reference-tool-venue-preview-template-update",
      "requiredFields": [
        "templateId",
        "toVersion",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "branchId",
        "baseVersion",
        "templateId",
        "fromVersion",
        "toVersion",
        "changedItems",
        "preservedOverrides",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "branchId",
        "templateId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.apply_edit",
      "path": "/docs/reference-tool-venue-apply-edit",
      "requiredFields": [
        "edit",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "proposalId",
        "changeId",
        "operation",
        "changedItems",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "changeId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.measure_objects",
      "path": "/docs/reference-tool-venue-measure-objects",
      "requiredFields": [
        "objectIds"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "objectIds[]",
        "centers",
        "distances[]"
      ],
      "stableIds": [
        "objectIds[]",
        "distances[].fromObjectId",
        "distances[].toObjectId"
      ]
    },
    {
      "name": "venue.validate_layout",
      "path": "/docs/reference-tool-venue-validate-layout",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "validationId",
        "inputFingerprint",
        "engineVersion",
        "evaluatedPlanVersion",
        "evaluatedProposalId",
        "status",
        "checks[]",
        "candidateMetrics",
        "candidateGeometryFingerprint",
        "spatialEvidence",
        "productionEvidence",
        "cateringEvidence",
        "emergencyEvidence",
        "evidenceFamilyFingerprints",
        "planningEvidenceInvalidations",
        "emergencyReviewRequired",
        "emergencyChangedObjectIds[]",
        "authorizedEmergencyReviewerRoles[]",
        "blockingIssues",
        "waivedWarnings",
        "unwaivedWarnings",
        "unresolvedIssues",
        "inventoryAvailability",
        "inventoryWarnings"
      ],
      "stableIds": [
        "validationId",
        "evaluatedProposalId",
        "checks[].constraintId",
        "checks[].evidenceId",
        "emergencyChangedObjectIds[]"
      ]
    },
    {
      "name": "venue.get_validation_evidence",
      "path": "/docs/reference-tool-venue-get-validation-evidence",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "VALIDATION_NOT_FOUND"
      ],
      "outputFields": [
        "validationId",
        "inputFingerprint",
        "engineVersion",
        "evaluatedPlanVersion",
        "evaluatedProposalId",
        "status",
        "unresolvedIssues",
        "candidateGeometryFingerprint",
        "evidenceFingerprint",
        "evidenceFamilyFingerprints",
        "planningEvidenceInvalidations",
        "checks[]",
        "spatialEvidence",
        "productionEvidence",
        "cateringEvidence",
        "emergencyEvidence"
      ],
      "stableIds": [
        "validationId",
        "evaluatedProposalId",
        "checks[].constraintId",
        "checks[].evidenceId"
      ]
    },
    {
      "name": "venue.list_proposal_branches",
      "path": "/docs/reference-tool-venue-list-proposal-branches",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].proposalId",
        "result[].revisionIds[]"
      ]
    },
    {
      "name": "venue.compare_proposal_branches",
      "path": "/docs/reference-tool-venue-compare-proposal-branches",
      "requiredFields": [
        "leftBranchId",
        "rightBranchId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "comparisonId",
        "planVersion",
        "left",
        "right",
        "changeSet",
        "metricDeltas",
        "constraintDeltas",
        "overlay",
        "decisionEvidence"
      ],
      "stableIds": [
        "comparisonId",
        "left.branchId",
        "right.branchId",
        "changeSet[].changeId",
        "constraintDeltas[].constraintId"
      ]
    },
    {
      "name": "venue.create_proposal_branch",
      "path": "/docs/reference-tool-venue-create-proposal-branch",
      "requiredFields": [
        "name",
        "strategy",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "branchId",
        "proposalId",
        "strategy",
        "changedItems",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.switch_proposal_branch",
      "path": "/docs/reference-tool-venue-switch-proposal-branch",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "branchId",
        "proposalId",
        "status",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.update_proposal_branch",
      "path": "/docs/reference-tool-venue-update-proposal-branch",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "branchId",
        "name",
        "notes",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.duplicate_proposal_branch",
      "path": "/docs/reference-tool-venue-duplicate-proposal-branch",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "sourceBranchId",
        "sourceProposalId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "sourceBranchId",
        "sourceProposalId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.archive_proposal_branch",
      "path": "/docs/reference-tool-venue-archive-proposal-branch",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "branchId",
        "activeBranchId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "activeBranchId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.restore_proposal_branch",
      "path": "/docs/reference-tool-venue-restore-proposal-branch",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "branchId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.detect_proposal_conflicts",
      "path": "/docs/reference-tool-venue-detect-proposal-conflicts",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "stale",
        "baseVersion",
        "currentVersion",
        "conflicts[]",
        "blockingConflicts",
        "validation"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "conflicts[].id",
        "conflicts[].changeIds[]",
        "conflicts[].objectIds[]"
      ]
    },
    {
      "name": "venue.rebase_proposal",
      "path": "/docs/reference-tool-venue-rebase-proposal",
      "requiredFields": [
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "baseVersion",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.request_adjustment",
      "path": "/docs/reference-tool-venue-request-adjustment",
      "requiredFields": [
        "instruction",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "revision",
        "status",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.list_comments",
      "path": "/docs/reference-tool-venue-list-comments",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].anchor.subjectId"
      ]
    },
    {
      "name": "venue.add_comment",
      "path": "/docs/reference-tool-venue-add-comment",
      "requiredFields": [
        "anchor",
        "body",
        "authorId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "commentId",
        "anchor",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "anchor.subjectId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.edit_comment",
      "path": "/docs/reference-tool-venue-edit-comment",
      "requiredFields": [
        "commentId",
        "body",
        "authorId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "commentId",
        "editNumber",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.set_comment_status",
      "path": "/docs/reference-tool-venue-set-comment-status",
      "requiredFields": [
        "commentId",
        "status",
        "authorId",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "commentId",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.get_change_log",
      "path": "/docs/reference-tool-venue-get-change-log",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].hash",
        "result[].previousHash"
      ]
    },
    {
      "name": "venue.replay_history",
      "path": "/docs/reference-tool-venue-replay-history",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "status",
        "transitions[]",
        "briefTransitions[]",
        "currentPlanVersion",
        "replayedFingerprint",
        "currentFingerprint",
        "replayedBriefFingerprint",
        "currentBriefFingerprint",
        "ledgerHeadHash",
        "lockedObjectViolations[]",
        "truthFingerprintViolations[]"
      ],
      "stableIds": [
        "transitions[].ledgerEntryId",
        "transitions[].planVersion",
        "briefTransitions[].ledgerEntryId",
        "lockedObjectViolations[].objectId",
        "truthFingerprintViolations[].ledgerEntryId"
      ]
    },
    {
      "name": "venue.list_scenarios",
      "path": "/docs/reference-tool-venue-list-scenarios",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id"
      ]
    },
    {
      "name": "venue.list_scenario_runs",
      "path": "/docs/reference-tool-venue-list-scenario-runs",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].scenarioId",
        "result[].branchId"
      ]
    },
    {
      "name": "venue.get_scenario_result",
      "path": "/docs/reference-tool-venue-get-scenario-result",
      "requiredFields": [
        "runId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "schemaVersion",
        "kind",
        "model",
        "engineVersion",
        "inputFingerprint",
        "scenarioFingerprint",
        "scenarioId",
        "branchId",
        "planVersion",
        "proposalId",
        "status",
        "parameters",
        "progress",
        "partial",
        "result",
        "confidence",
        "startedAt",
        "completedAt"
      ],
      "stableIds": [
        "scenarioId",
        "branchId",
        "proposalId",
        "result.runId"
      ]
    },
    {
      "name": "venue.run_scenario",
      "path": "/docs/reference-tool-venue-run-scenario",
      "requiredFields": [
        "scenario",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "runId",
        "scenarioId",
        "branchId",
        "inputFingerprint",
        "cacheHit",
        "result",
        "receipt"
      ],
      "stableIds": [
        "runId",
        "scenarioId",
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.compare_simulations",
      "path": "/docs/reference-tool-venue-compare-simulations",
      "requiredFields": [
        "leftRunId",
        "rightRunId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "comparisonId",
        "leftRunId",
        "rightRunId",
        "scenarioFingerprint",
        "engineVersion",
        "metrics",
        "deltas"
      ],
      "stableIds": [
        "comparisonId",
        "leftRunId",
        "rightRunId"
      ]
    },
    {
      "name": "venue.export_simulation",
      "path": "/docs/reference-tool-venue-export-simulation",
      "requiredFields": [
        "runId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "format",
        "filename",
        "mimeType",
        "encoding",
        "content"
      ],
      "stableIds": [
        "content.runId",
        "content.scenarioId",
        "content.branchId"
      ]
    },
    {
      "name": "venue.inspect_live_occupancy",
      "path": "/docs/reference-tool-venue-inspect-live-occupancy",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "OCCUPANCY_MONITOR_NOT_FOUND",
        "OCCUPANCY_TOOL_UNAVAILABLE",
        "OCCUPANCY_REVISION_CONFLICT",
        "OCCUPANCY_SIGNAL_INVALID",
        "OCCUPANCY_PRIVACY_REJECTED"
      ],
      "outputFields": [
        "monitor",
        "projection"
      ],
      "stableIds": [
        "monitor.id",
        "monitor.runbookVersionId",
        "monitor.activeAlerts[].id",
        "monitor.ledger[].id",
        "projection.scopes[].scopeId",
        "projection.sources[].sourceId"
      ]
    },
    {
      "name": "venue.ingest_occupancy_signal",
      "path": "/docs/reference-tool-venue-ingest-occupancy-signal",
      "requiredFields": [
        "sourceId",
        "sourceType",
        "sourceVersion",
        "kind",
        "observedAt",
        "confidence",
        "readings",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "OCCUPANCY_MONITOR_NOT_FOUND",
        "OCCUPANCY_TOOL_UNAVAILABLE",
        "OCCUPANCY_REVISION_CONFLICT",
        "OCCUPANCY_SIGNAL_INVALID",
        "OCCUPANCY_PRIVACY_REJECTED"
      ],
      "outputFields": [
        "monitor",
        "projection",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "monitor.id",
        "projection.scopes[].scopeId",
        "receipt.id"
      ]
    },
    {
      "name": "venue.refresh_live_occupancy",
      "path": "/docs/reference-tool-venue-refresh-live-occupancy",
      "requiredFields": [
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "OCCUPANCY_MONITOR_NOT_FOUND",
        "OCCUPANCY_TOOL_UNAVAILABLE",
        "OCCUPANCY_REVISION_CONFLICT",
        "OCCUPANCY_SIGNAL_INVALID",
        "OCCUPANCY_PRIVACY_REJECTED"
      ],
      "outputFields": [
        "monitor",
        "projection",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "monitor.id",
        "monitor.activeAlerts[].id",
        "receipt.id"
      ]
    },
    {
      "name": "venue.export_live_occupancy",
      "path": "/docs/reference-tool-venue-export-live-occupancy",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "OCCUPANCY_MONITOR_NOT_FOUND",
        "OCCUPANCY_TOOL_UNAVAILABLE",
        "OCCUPANCY_REVISION_CONFLICT",
        "OCCUPANCY_SIGNAL_INVALID",
        "OCCUPANCY_PRIVACY_REJECTED"
      ],
      "outputFields": [
        "filename",
        "mimeType",
        "content"
      ],
      "stableIds": [
        "content.monitor.id",
        "content.runbookVersionId",
        "content.ledger[].id"
      ]
    },
    {
      "name": "venue.inspect_incidents",
      "path": "/docs/reference-tool-venue-inspect-incidents",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "INCIDENT_REGISTER_NOT_FOUND",
        "INCIDENT_NOT_FOUND",
        "INCIDENT_TOOL_UNAVAILABLE",
        "INCIDENT_REVISION_CONFLICT",
        "INCIDENT_INVALID",
        "INCIDENT_PRIVACY_REJECTED",
        "INCIDENT_LOCATION_INVALID",
        "INCIDENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "incidents",
        "incident"
      ],
      "stableIds": [
        "register.id",
        "register.runbookVersionId",
        "incidents[].id",
        "incident.id",
        "register.ledger[].id"
      ]
    },
    {
      "name": "venue.report_incident",
      "path": "/docs/reference-tool-venue-report-incident",
      "requiredFields": [
        "severity",
        "category",
        "summaryCode",
        "location",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "INCIDENT_REGISTER_NOT_FOUND",
        "INCIDENT_NOT_FOUND",
        "INCIDENT_TOOL_UNAVAILABLE",
        "INCIDENT_REVISION_CONFLICT",
        "INCIDENT_INVALID",
        "INCIDENT_PRIVACY_REJECTED",
        "INCIDENT_LOCATION_INVALID",
        "INCIDENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "incident",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "register.id",
        "incident.id",
        "receipt.id",
        "register.ledger[].id"
      ]
    },
    {
      "name": "venue.export_incident_record",
      "path": "/docs/reference-tool-venue-export-incident-record",
      "requiredFields": [
        "incidentId"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "INCIDENT_REGISTER_NOT_FOUND",
        "INCIDENT_NOT_FOUND",
        "INCIDENT_TOOL_UNAVAILABLE",
        "INCIDENT_REVISION_CONFLICT",
        "INCIDENT_INVALID",
        "INCIDENT_PRIVACY_REJECTED",
        "INCIDENT_LOCATION_INVALID",
        "INCIDENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "filename",
        "mimeType",
        "content"
      ],
      "stableIds": [
        "content.register.id",
        "content.incident.id",
        "content.ledger[].id"
      ]
    },
    {
      "name": "venue.inspect_live_plan_deviations",
      "path": "/docs/reference-tool-venue-inspect-live-plan-deviations",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "deviations",
        "overlay"
      ],
      "stableIds": [
        "register.id",
        "deviations[].id",
        "overlay.id",
        "overlay.objectLineage[].objectId"
      ]
    },
    {
      "name": "venue.record_live_plan_deviation",
      "path": "/docs/reference-tool-venue-record-live-plan-deviation",
      "requiredFields": [
        "deviationId",
        "disposition",
        "reasonCode",
        "location",
        "affectedObjectIds",
        "availableConstraintIds",
        "change",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "deviation",
        "overlay",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "register.id",
        "deviation.id",
        "overlay.id",
        "receipt.id"
      ]
    },
    {
      "name": "venue.end_live_plan_deviation",
      "path": "/docs/reference-tool-venue-end-live-plan-deviation",
      "requiredFields": [
        "deviationId",
        "expectedDeviationRevision",
        "reasonCode",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "deviation",
        "overlay",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "register.id",
        "deviation.id",
        "overlay.id",
        "receipt.id"
      ]
    },
    {
      "name": "venue.create_post_event_deviation_proposal",
      "path": "/docs/reference-tool-venue-create-post-event-deviation-proposal",
      "requiredFields": [
        "proposalId",
        "goal",
        "deviationIds",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_LEDGER_INTEGRITY_FAILED",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "register",
        "proposal",
        "recommendation",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "register.id",
        "proposal.id",
        "recommendation.id",
        "receipt.id"
      ]
    },
    {
      "name": "venue.export_live_plan_deviations",
      "path": "/docs/reference-tool-venue-export-live-plan-deviations",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "DEVIATION_REGISTER_NOT_FOUND",
        "DEVIATION_NOT_FOUND",
        "DEVIATION_TOOL_UNAVAILABLE",
        "DEVIATION_INVALID",
        "DEVIATION_LOCATION_INVALID",
        "DEVIATION_REVISION_CONFLICT",
        "DEVIATION_REGISTER_REVISION_CONFLICT",
        "DEVIATION_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "filename",
        "mediaType",
        "content",
        "fingerprint"
      ],
      "stableIds": [
        "content.register.id",
        "content.deviations[].id",
        "content.overlay.id"
      ]
    },
    {
      "name": "venue.inspect_post_event_review",
      "path": "/docs/reference-tool-venue-inspect-post-event-review",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "review",
        "comparisons",
        "integrity"
      ],
      "stableIds": [
        "review.id",
        "review.predictions[].key",
        "comparisons[].comparisonFingerprint",
        "review.ledger[].id"
      ]
    },
    {
      "name": "venue.record_post_event_observation",
      "path": "/docs/reference-tool-venue-record-post-event-observation",
      "requiredFields": [
        "observationId",
        "predictionKey",
        "value",
        "confidence",
        "evidenceRefs",
        "expectedRevision",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "review",
        "subject",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "review.id",
        "subject.id",
        "subject.predictionKey",
        "receipt.id",
        "subject.evidenceRefs[].id"
      ]
    },
    {
      "name": "venue.record_post_event_lesson",
      "path": "/docs/reference-tool-venue-record-post-event-lesson",
      "requiredFields": [
        "lessonId",
        "comparisonKey",
        "lessonCode",
        "findingCode",
        "recommendedActionCode",
        "requirementIds",
        "constraintIds",
        "expectedRevision",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "review",
        "subject",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "review.id",
        "subject.id",
        "subject.comparisonKey",
        "subject.requirementIds[]",
        "subject.constraintIds[]",
        "receipt.id"
      ]
    },
    {
      "name": "venue.create_template_improvement_proposal",
      "path": "/docs/reference-tool-venue-create-template-improvement-proposal",
      "requiredFields": [
        "proposalId",
        "goal",
        "target",
        "changes",
        "changeLessonLinks",
        "expectedRevision",
        "idempotencyKey"
      ],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "review",
        "subject",
        "receipt",
        "duplicate"
      ],
      "stableIds": [
        "review.id",
        "subject.id",
        "subject.traces[].changeId",
        "subject.traces[].lessonIds[]",
        "receipt.id"
      ]
    },
    {
      "name": "venue.export_post_event_report",
      "path": "/docs/reference-tool-venue-export-post-event-report",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR",
        "POST_EVENT_REVIEW_NOT_FOUND",
        "POST_EVENT_TOOL_UNAVAILABLE",
        "POST_EVENT_INVALID",
        "POST_EVENT_REVISION_CONFLICT",
        "POST_EVENT_EVIDENCE_INVALID",
        "POST_EVENT_OBSERVATION_CONFLICT",
        "POST_EVENT_COMPARISON_NOT_FOUND",
        "POST_EVENT_LESSON_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_NOT_FOUND",
        "POST_EVENT_TEMPLATE_PROPOSAL_INVALID",
        "POST_EVENT_LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "filename",
        "mimeType",
        "content"
      ],
      "stableIds": [
        "content.identity.reviewId",
        "content.comparisons[].comparisonFingerprint",
        "content.ledger[].id"
      ]
    },
    {
      "name": "venue.export_audit_package",
      "path": "/docs/reference-tool-venue-export-audit-package",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "format",
        "filename",
        "mimeType",
        "encoding",
        "content"
      ],
      "stableIds": [
        "content.plan.id",
        "content.ledger[].id",
        "content.validation.validationId"
      ]
    },
    {
      "name": "venue.export_plan",
      "path": "/docs/reference-tool-venue-export-plan",
      "requiredFields": [],
      "errors": [
        "TOOL_SCOPE_REQUIRED",
        "AUTHORIZATION_DENIED",
        "AGENT_GRANT_INVALID",
        "TOOL_PAYLOAD_TOO_LARGE",
        "TOOL_CALL_CANCELLED",
        "VENUE_INTERNAL_ERROR"
      ],
      "outputFields": [
        "format",
        "filename",
        "mimeType",
        "encoding",
        "content"
      ],
      "stableIds": [
        "content.planId",
        "content.proposalId",
        "content.validationId"
      ]
    }
  ],
  "commandPages": [
    {
      "name": "inspect_templates",
      "path": "/docs/reference-command-inspect-templates",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "schemaVersion",
        "venueTemplates[]",
        "roomTemplates[]",
        "inventoryTemplates[]"
      ],
      "stableIds": [
        "venueTemplates[].id",
        "roomTemplates[].id",
        "inventoryTemplates[].id"
      ]
    },
    {
      "name": "measure_objects",
      "path": "/docs/reference-command-measure-objects",
      "permission": "plan.read",
      "requiredFields": [
        "type",
        "objectIds"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "objectIds[]",
        "centers",
        "distances[]"
      ],
      "stableIds": [
        "objectIds[]",
        "distances[].fromObjectId",
        "distances[].toObjectId"
      ]
    },
    {
      "name": "inspect_layout",
      "path": "/docs/reference-command-inspect-layout",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "planId",
        "planVersion",
        "event",
        "venue",
        "templateBindings",
        "inventoryAvailability",
        "occupancy",
        "staffing",
        "productionPolicy",
        "cateringPolicy",
        "emergencyPlan",
        "emergencyReviews",
        "spatial",
        "spatialObjects[]",
        "lockedObjects[]",
        "projectLocks[]",
        "comments[]",
        "scenarios[]",
        "scenarioRuns[]",
        "constraints[]",
        "metrics",
        "proposal",
        "activeBranchId",
        "proposalBranches[]",
        "commandReceiptCount",
        "ledgerIntegrity",
        "brief"
      ],
      "stableIds": [
        "planId",
        "spatialObjects[].id",
        "constraints[].id",
        "proposal.id",
        "proposal.changes[].id",
        "activeBranchId",
        "proposalBranches[].id"
      ]
    },
    {
      "name": "get_project_brief",
      "path": "/docs/reference-command-get-project-brief",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "id",
        "eventName",
        "date",
        "timezone",
        "venueId",
        "roomId",
        "attendeeTarget",
        "occupancyMode",
        "schedule",
        "planningEffectBindings",
        "requirements[]",
        "coverage",
        "coverageMatrix",
        "ambiguities[]",
        "summary"
      ],
      "stableIds": [
        "id",
        "planningEffectBindings.*.targetRequirementId",
        "planningEffectBindings.*.affectedConstraintIds[]",
        "requirements[].id",
        "coverageMatrix[].constraintId"
      ]
    },
    {
      "name": "list_constraints",
      "path": "/docs/reference-command-list-constraints",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].checkId"
      ]
    },
    {
      "name": "get_validation_evidence",
      "path": "/docs/reference-command-get-validation-evidence",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "validationId",
        "inputFingerprint",
        "engineVersion",
        "evaluatedPlanVersion",
        "evaluatedProposalId",
        "status",
        "unresolvedIssues",
        "candidateGeometryFingerprint",
        "evidenceFingerprint",
        "evidenceFamilyFingerprints",
        "planningEvidenceInvalidations",
        "checks[]",
        "spatialEvidence",
        "productionEvidence",
        "cateringEvidence",
        "emergencyEvidence"
      ],
      "stableIds": [
        "validationId",
        "evaluatedProposalId",
        "checks[].constraintId",
        "checks[].evidenceId"
      ]
    },
    {
      "name": "get_object",
      "path": "/docs/reference-command-get-object",
      "permission": "plan.read",
      "requiredFields": [
        "type",
        "objectId"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "scope",
        "planId",
        "planVersion",
        "proposalId",
        "object"
      ],
      "stableIds": [
        "planId",
        "proposalId",
        "object.id"
      ]
    },
    {
      "name": "search_objects",
      "path": "/docs/reference-command-search-objects",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "scope",
        "planId",
        "planVersion",
        "proposalId",
        "total",
        "limit",
        "truncated",
        "objects[]"
      ],
      "stableIds": [
        "planId",
        "proposalId",
        "objects[].id"
      ]
    },
    {
      "name": "validate_layout",
      "path": "/docs/reference-command-validate-layout",
      "permission": "plan.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "validationId",
        "inputFingerprint",
        "engineVersion",
        "evaluatedPlanVersion",
        "evaluatedProposalId",
        "status",
        "checks[]",
        "candidateMetrics",
        "candidateGeometryFingerprint",
        "spatialEvidence",
        "productionEvidence",
        "cateringEvidence",
        "emergencyEvidence",
        "evidenceFamilyFingerprints",
        "planningEvidenceInvalidations",
        "emergencyReviewRequired",
        "emergencyChangedObjectIds[]",
        "authorizedEmergencyReviewerRoles[]",
        "blockingIssues",
        "waivedWarnings",
        "unwaivedWarnings",
        "unresolvedIssues",
        "inventoryAvailability",
        "inventoryWarnings"
      ],
      "stableIds": [
        "validationId",
        "evaluatedProposalId",
        "checks[].constraintId",
        "checks[].evidenceId",
        "emergencyChangedObjectIds[]"
      ]
    },
    {
      "name": "list_branches",
      "path": "/docs/reference-command-list-branches",
      "permission": "proposal.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].proposalId",
        "result[].revisionIds[]"
      ]
    },
    {
      "name": "compare_branches",
      "path": "/docs/reference-command-compare-branches",
      "permission": "proposal.read",
      "requiredFields": [
        "type",
        "leftBranchId",
        "rightBranchId"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "comparisonId",
        "planVersion",
        "left",
        "right",
        "changeSet",
        "metricDeltas",
        "constraintDeltas",
        "overlay",
        "decisionEvidence"
      ],
      "stableIds": [
        "comparisonId",
        "left.branchId",
        "right.branchId",
        "changeSet[].changeId",
        "constraintDeltas[].constraintId"
      ]
    },
    {
      "name": "get_change_log",
      "path": "/docs/reference-command-get-change-log",
      "permission": "audit.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].hash",
        "result[].previousHash"
      ]
    },
    {
      "name": "replay_history",
      "path": "/docs/reference-command-replay-history",
      "permission": "audit.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "status",
        "transitions[]",
        "briefTransitions[]",
        "currentPlanVersion",
        "replayedFingerprint",
        "currentFingerprint",
        "replayedBriefFingerprint",
        "currentBriefFingerprint",
        "ledgerHeadHash",
        "lockedObjectViolations[]",
        "truthFingerprintViolations[]"
      ],
      "stableIds": [
        "transitions[].ledgerEntryId",
        "transitions[].planVersion",
        "briefTransitions[].ledgerEntryId",
        "lockedObjectViolations[].objectId",
        "truthFingerprintViolations[].ledgerEntryId"
      ]
    },
    {
      "name": "list_scenarios",
      "path": "/docs/reference-command-list-scenarios",
      "permission": "simulation.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id"
      ]
    },
    {
      "name": "list_scenario_runs",
      "path": "/docs/reference-command-list-scenario-runs",
      "permission": "simulation.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].scenarioId",
        "result[].branchId"
      ]
    },
    {
      "name": "get_scenario_result",
      "path": "/docs/reference-command-get-scenario-result",
      "permission": "simulation.read",
      "requiredFields": [
        "type",
        "runId"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "schemaVersion",
        "kind",
        "model",
        "engineVersion",
        "inputFingerprint",
        "scenarioFingerprint",
        "scenarioId",
        "branchId",
        "planVersion",
        "proposalId",
        "status",
        "parameters",
        "progress",
        "partial",
        "result",
        "confidence",
        "startedAt",
        "completedAt"
      ],
      "stableIds": [
        "scenarioId",
        "branchId",
        "proposalId",
        "result.runId"
      ]
    },
    {
      "name": "run_scenario",
      "path": "/docs/reference-command-run-scenario",
      "permission": "simulation.run",
      "requiredFields": [
        "type",
        "scenario",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "runId",
        "scenarioId",
        "branchId",
        "inputFingerprint",
        "cacheHit",
        "result",
        "receipt"
      ],
      "stableIds": [
        "runId",
        "scenarioId",
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "compare_simulations",
      "path": "/docs/reference-command-compare-simulations",
      "permission": "simulation.read",
      "requiredFields": [
        "type",
        "leftRunId",
        "rightRunId"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "comparisonId",
        "leftRunId",
        "rightRunId",
        "scenarioFingerprint",
        "engineVersion",
        "metrics",
        "deltas"
      ],
      "stableIds": [
        "comparisonId",
        "leftRunId",
        "rightRunId"
      ]
    },
    {
      "name": "export_simulation",
      "path": "/docs/reference-command-export-simulation",
      "permission": "export.plan",
      "requiredFields": [
        "type",
        "runId"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SCENARIO_RUN_NOT_FOUND"
      ],
      "outputFields": [
        "format",
        "filename",
        "mimeType",
        "encoding",
        "content"
      ],
      "stableIds": [
        "content.runId",
        "content.scenarioId",
        "content.branchId"
      ]
    },
    {
      "name": "detect_conflicts",
      "path": "/docs/reference-command-detect-conflicts",
      "permission": "proposal.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "CONFLICT_NOT_FOUND",
        "CONFLICT_RESOLUTION_INVALID"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "stale",
        "baseVersion",
        "currentVersion",
        "conflicts[]",
        "blockingConflicts",
        "validation"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "conflicts[].id",
        "conflicts[].changeIds[]",
        "conflicts[].objectIds[]"
      ]
    },
    {
      "name": "preview_revision",
      "path": "/docs/reference-command-preview-revision",
      "permission": "proposal.create",
      "requiredFields": [
        "type",
        "goal",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "baseVersion",
        "revision",
        "changedItems",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "receipt.id",
        "receipt.resultIds.changeId"
      ]
    },
    {
      "name": "preview_template_update",
      "path": "/docs/reference-command-preview-template-update",
      "permission": "proposal.create",
      "requiredFields": [
        "type",
        "templateId",
        "toVersion",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "branchId",
        "baseVersion",
        "templateId",
        "fromVersion",
        "toVersion",
        "changedItems",
        "preservedOverrides",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "branchId",
        "templateId",
        "receipt.id"
      ]
    },
    {
      "name": "apply_edit",
      "path": "/docs/reference-command-apply-edit",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "edit",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "proposalId",
        "changeId",
        "operation",
        "changedItems",
        "requiresHumanApproval",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "changeId",
        "receipt.id"
      ]
    },
    {
      "name": "create_branch",
      "path": "/docs/reference-command-create-branch",
      "permission": "proposal.create",
      "requiredFields": [
        "type",
        "name",
        "strategy",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "branchId",
        "proposalId",
        "strategy",
        "changedItems",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "recover_unsynchronized_branch",
      "path": "/docs/reference-command-recover-unsynchronized-branch",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "proposal",
        "actor",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "receipt"
      ],
      "stableIds": [
        "receipt.id"
      ]
    },
    {
      "name": "record_share_link_created",
      "path": "/docs/reference-command-record-share-link-created",
      "permission": "project.manage",
      "requiredFields": [
        "type",
        "shareLinkId",
        "scope",
        "expiresAt",
        "actor",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "receipt"
      ],
      "stableIds": [
        "receipt.id"
      ]
    },
    {
      "name": "record_share_link_revoked",
      "path": "/docs/reference-command-record-share-link-revoked",
      "permission": "project.manage",
      "requiredFields": [
        "type",
        "shareLinkId",
        "actor",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "receipt"
      ],
      "stableIds": [
        "receipt.id"
      ]
    },
    {
      "name": "switch_branch",
      "path": "/docs/reference-command-switch-branch",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "branchId",
        "proposalId",
        "status",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "update_branch_metadata",
      "path": "/docs/reference-command-update-branch-metadata",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "branchId",
        "name",
        "notes",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "duplicate_branch",
      "path": "/docs/reference-command-duplicate-branch",
      "permission": "proposal.create",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "sourceBranchId",
        "sourceProposalId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "sourceBranchId",
        "sourceProposalId",
        "receipt.id"
      ]
    },
    {
      "name": "archive_branch",
      "path": "/docs/reference-command-archive-branch",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "branchId",
        "activeBranchId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "activeBranchId",
        "receipt.id"
      ]
    },
    {
      "name": "restore_branch",
      "path": "/docs/reference-command-restore-branch",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "branchId",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "receipt.id"
      ]
    },
    {
      "name": "record_branch_decision",
      "path": "/docs/reference-command-record-branch-decision",
      "permission": "proposal.review",
      "requiredFields": [
        "type",
        "chosenBranchId",
        "rejectedBranchIds",
        "actor",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "BRANCH_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "decisionId",
        "chosenBranchId",
        "rejectedBranchIds"
      ],
      "stableIds": [
        "decisionId",
        "chosenBranchId",
        "rejectedBranchIds[]"
      ]
    },
    {
      "name": "list_comments",
      "path": "/docs/reference-command-list-comments",
      "permission": "comment.read",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "COMMENT_NOT_FOUND",
        "COMMENT_INVALID"
      ],
      "outputFields": [
        "result[]"
      ],
      "stableIds": [
        "result[].id",
        "result[].anchor.subjectId"
      ]
    },
    {
      "name": "add_comment",
      "path": "/docs/reference-command-add-comment",
      "permission": "comment.write",
      "requiredFields": [
        "type",
        "anchor",
        "body",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "COMMENT_NOT_FOUND",
        "COMMENT_INVALID"
      ],
      "outputFields": [
        "status",
        "commentId",
        "anchor",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "anchor.subjectId",
        "receipt.id"
      ]
    },
    {
      "name": "edit_comment",
      "path": "/docs/reference-command-edit-comment",
      "permission": "comment.write",
      "requiredFields": [
        "type",
        "commentId",
        "body",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "COMMENT_NOT_FOUND",
        "COMMENT_INVALID"
      ],
      "outputFields": [
        "status",
        "commentId",
        "editNumber",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "receipt.id"
      ]
    },
    {
      "name": "set_comment_status",
      "path": "/docs/reference-command-set-comment-status",
      "permission": "comment.write",
      "requiredFields": [
        "type",
        "commentId",
        "status",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "COMMENT_NOT_FOUND",
        "COMMENT_INVALID"
      ],
      "outputFields": [
        "status",
        "commentId",
        "receipt"
      ],
      "stableIds": [
        "commentId",
        "receipt.id"
      ]
    },
    {
      "name": "request_adjustment",
      "path": "/docs/reference-command-request-adjustment",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "instruction",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "proposalId",
        "revision",
        "status",
        "receipt"
      ],
      "stableIds": [
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "revert_change",
      "path": "/docs/reference-command-revert-change",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "changeId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "proposalId",
        "changeId",
        "changedItems"
      ],
      "stableIds": [
        "proposalId",
        "changeId"
      ]
    },
    {
      "name": "waive_warning",
      "path": "/docs/reference-command-waive-warning",
      "permission": "approval.waive",
      "requiredFields": [
        "type",
        "constraintId",
        "reasonCode",
        "actor",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "WARNING_NOT_WAIVABLE",
        "WAIVER_REASON_INVALID"
      ],
      "outputFields": [
        "status",
        "waiverId",
        "constraintId",
        "proposalId",
        "validationInputFingerprint"
      ],
      "stableIds": [
        "waiverId",
        "constraintId",
        "proposalId"
      ]
    },
    {
      "name": "set_object_lock",
      "path": "/docs/reference-command-set-object-lock",
      "permission": "lock.manage",
      "requiredFields": [
        "type",
        "objectId",
        "lockType",
        "reasonCode",
        "actor",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "LOCK_CONFLICT",
        "LOCK_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "lockId",
        "objectId",
        "lockType",
        "source"
      ],
      "stableIds": [
        "lockId",
        "objectId"
      ]
    },
    {
      "name": "release_object_lock",
      "path": "/docs/reference-command-release-object-lock",
      "permission": "lock.manage",
      "requiredFields": [
        "type",
        "lockId",
        "actor",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "LOCK_CONFLICT",
        "LOCK_NOT_FOUND"
      ],
      "outputFields": [
        "status",
        "lockId",
        "objectId",
        "lockType"
      ],
      "stableIds": [
        "lockId",
        "objectId"
      ]
    },
    {
      "name": "approve_proposal",
      "path": "/docs/reference-command-approve-proposal",
      "permission": "approval.approve",
      "requiredFields": [
        "type",
        "proposalId",
        "baseVersion",
        "actor",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "PROPOSAL_MISMATCH",
        "PROPOSAL_EMPTY",
        "PLAN_VERSION_CONFLICT",
        "VALIDATION_FAILED",
        "WARNING_WAIVER_REQUIRED",
        "EMERGENCY_REVIEW_REQUIRED"
      ],
      "outputFields": [
        "planId",
        "planVersion",
        "proposalId",
        "status",
        "validation"
      ],
      "stableIds": [
        "planId",
        "proposalId",
        "validation.validationId"
      ]
    },
    {
      "name": "undo",
      "path": "/docs/reference-command-undo",
      "permission": "plan.update",
      "requiredFields": [
        "type",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "proposalId",
        "changeId",
        "changedItems",
        "planVersion"
      ],
      "stableIds": [
        "proposalId",
        "changeId",
        "planVersion"
      ]
    },
    {
      "name": "redo",
      "path": "/docs/reference-command-redo",
      "permission": "plan.update",
      "requiredFields": [
        "type",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "proposalId",
        "changeId",
        "changedItems",
        "planVersion"
      ],
      "stableIds": [
        "proposalId",
        "changeId",
        "planVersion"
      ]
    },
    {
      "name": "rebase_proposal",
      "path": "/docs/reference-command-rebase-proposal",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "branchId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "CONFLICT_NOT_FOUND",
        "CONFLICT_RESOLUTION_INVALID"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "baseVersion",
        "receipt"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "receipt.id"
      ]
    },
    {
      "name": "resolve_conflict",
      "path": "/docs/reference-command-resolve-conflict",
      "permission": "proposal.review",
      "requiredFields": [
        "type",
        "branchId",
        "conflictId",
        "outcome",
        "actor",
        "actorId",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT",
        "CONFLICT_NOT_FOUND",
        "CONFLICT_RESOLUTION_INVALID"
      ],
      "outputFields": [
        "status",
        "branchId",
        "proposalId",
        "conflictId",
        "outcome",
        "transformedChangeId",
        "validationId",
        "validationStatus",
        "remainingConflicts"
      ],
      "stableIds": [
        "branchId",
        "proposalId",
        "conflictId",
        "transformedChangeId",
        "validationId"
      ]
    },
    {
      "name": "update_event_brief",
      "path": "/docs/reference-command-update-event-brief",
      "permission": "proposal.manage",
      "requiredFields": [
        "type",
        "brief",
        "actor",
        "idempotencyKey"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "IDEMPOTENCY_KEY_REQUIRED",
        "IDEMPOTENCY_KEY_CONFLICT"
      ],
      "outputFields": [
        "status",
        "briefId",
        "attendeeTarget",
        "requirements"
      ],
      "stableIds": [
        "briefId"
      ]
    },
    {
      "name": "restore_snapshot",
      "path": "/docs/reference-command-restore-snapshot",
      "permission": "project.manage",
      "requiredFields": [
        "type",
        "snapshot"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED",
        "SNAPSHOT_INVALID",
        "LEDGER_INTEGRITY_FAILED"
      ],
      "outputFields": [
        "status",
        "planId",
        "planVersion"
      ],
      "stableIds": [
        "planId"
      ]
    },
    {
      "name": "export_plan",
      "path": "/docs/reference-command-export-plan",
      "permission": "export.plan",
      "requiredFields": [
        "type"
      ],
      "errors": [
        "COMMAND_INVALID",
        "COMMAND_UNSUPPORTED",
        "AUTHORIZATION_DENIED"
      ],
      "outputFields": [
        "format",
        "filename",
        "mimeType",
        "encoding",
        "content"
      ],
      "stableIds": [
        "content.plan.id",
        "content.ledger[].id",
        "content.validation.validationId"
      ]
    }
  ],
  "constraintEvaluators": [
    {
      "evaluator": "minimum_metric",
      "category": "configured metric",
      "evidence": "actual, threshold, comparator",
      "units": "Constraint parameter unit"
    },
    {
      "evaluator": "maximum_metric",
      "category": "configured metric",
      "evidence": "actual, threshold, comparator",
      "units": "Constraint parameter unit"
    },
    {
      "evaluator": "protected_objects_unchanged",
      "category": "protection",
      "evidence": "changed and protected object IDs",
      "units": "count"
    },
    {
      "evaluator": "accessible_route_graph",
      "category": "accessibility",
      "evidence": "reachable destinations, path widths, route edges",
      "units": "m, count"
    },
    {
      "evaluator": "turning_clearance",
      "category": "accessibility",
      "evidence": "destination clearance diameters",
      "units": "m"
    },
    {
      "evaluator": "accessible_seating",
      "category": "accessibility",
      "evidence": "seat count, section distribution, companion adjacency",
      "units": "seats, sections, ratio"
    },
    {
      "evaluator": "accessible_seating_sightlines",
      "category": "accessibility",
      "evidence": "sampled accessible-seat rays and section coverage",
      "units": "ratio, m, degrees"
    },
    {
      "evaluator": "door_clearance",
      "category": "accessibility",
      "evidence": "door clear width and obstruction IDs",
      "units": "m, count"
    },
    {
      "evaluator": "temporary_ramp",
      "category": "accessibility",
      "evidence": "rise, run, slope, width, landing, edge protection, handrails",
      "units": "ratio, m, boolean"
    },
    {
      "evaluator": "occupancy_capacity",
      "category": "capacity",
      "evidence": "placed, usable-area, section, zone, venue, and operational load",
      "units": "attendees, m², ratio"
    },
    {
      "evaluator": "circulation_graph",
      "category": "circulation",
      "evidence": "paths, clear widths, exit approaches, bottlenecks, phase loads",
      "units": "m, persons, persons/min, index"
    },
    {
      "evaluator": "sightline_raycast",
      "category": "sightlines",
      "evidence": "sampled rays, viewing angles, distance, obstruction IDs",
      "units": "ratio, m, degrees"
    },
    {
      "evaluator": "production_readiness",
      "category": "production",
      "evidence": "throw, visibility, sound, cameras, control, cable, power, rigging, inventory",
      "units": "m, degrees, W, kg, count"
    },
    {
      "evaluator": "catering_readiness",
      "category": "catering",
      "evidence": "phase capacity, queue spill, separation, access, replenishment, inventory",
      "units": "persons/min, persons, m, ratio, count"
    },
    {
      "evaluator": "emergency_readiness",
      "category": "emergency",
      "evidence": "exit capacity, routes, assembly, responder access, equipment, backup power",
      "units": "persons, persons/min, m, min, count"
    }
  ],
  "ledgerEvents": [
    {
      "type": "plan.opened",
      "category": "plan",
      "stableReferences": "planId, version, planFingerprint"
    },
    {
      "type": "authorization.denied",
      "category": "security",
      "stableReferences": "policyDecisionId, permission, reason"
    },
    {
      "type": "proposal.previewed",
      "category": "proposal",
      "stableReferences": "proposalId, branchId, changeIds[]"
    },
    {
      "type": "template.update_previewed",
      "category": "proposal",
      "stableReferences": "proposalId, branchId, templateId, changeIds[]"
    },
    {
      "type": "proposal.adjustment_requested",
      "category": "proposal",
      "stableReferences": "proposalId"
    },
    {
      "type": "proposal.change_reverted",
      "category": "proposal",
      "stableReferences": "proposalId, changeId"
    },
    {
      "type": "proposal.branch_created",
      "category": "branch",
      "stableReferences": "branchId, proposalId"
    },
    {
      "type": "proposal.branch_metadata_updated",
      "category": "branch",
      "stableReferences": "branchId"
    },
    {
      "type": "proposal.branch_recovered",
      "category": "branch",
      "stableReferences": "branchId, proposalId, sourceProposalId"
    },
    {
      "type": "share_link.created",
      "category": "sharing",
      "stableReferences": "shareLinkId, proposalId"
    },
    {
      "type": "share_link.revoked",
      "category": "sharing",
      "stableReferences": "shareLinkId"
    },
    {
      "type": "proposal.branch_duplicated",
      "category": "branch",
      "stableReferences": "branchId, sourceBranchId, sourceProposalId, proposalId"
    },
    {
      "type": "proposal.branch_archived",
      "category": "branch",
      "stableReferences": "branchId"
    },
    {
      "type": "proposal.branch_restored",
      "category": "branch",
      "stableReferences": "branchId"
    },
    {
      "type": "proposal.branch_decision_recorded",
      "category": "branch",
      "stableReferences": "decisionId, chosenBranchId, rejectedBranchIds[]"
    },
    {
      "type": "proposal.branch_selected",
      "category": "branch",
      "stableReferences": "branchId, proposalId"
    },
    {
      "type": "proposal.rebased",
      "category": "conflict",
      "stableReferences": "branchId, proposalId, fromVersion, toVersion, conflictIds[]"
    },
    {
      "type": "proposal.conflict_resolved",
      "category": "conflict",
      "stableReferences": "branchId, proposalId, conflictId, resolutionId"
    },
    {
      "type": "proposal.lock_rejected",
      "category": "security",
      "stableReferences": "proposalId, changeIds[], lockIds[]"
    },
    {
      "type": "proposal.approved",
      "category": "approval",
      "stableReferences": "proposalId, branchId, validationId, fromVersion, toVersion, planFingerprint"
    },
    {
      "type": "editor.change_applied",
      "category": "editor",
      "stableReferences": "proposalId, changeId, objectIds[]"
    },
    {
      "type": "editor.change_undone",
      "category": "editor",
      "stableReferences": "proposalId, changeId"
    },
    {
      "type": "editor.change_redone",
      "category": "editor",
      "stableReferences": "proposalId, changeId"
    },
    {
      "type": "brief.updated",
      "category": "brief",
      "stableReferences": "briefId, requirementIds[]"
    },
    {
      "type": "comment.created",
      "category": "comment",
      "stableReferences": "commentId, anchor"
    },
    {
      "type": "comment.edited",
      "category": "comment",
      "stableReferences": "commentId, editNumber"
    },
    {
      "type": "comment.resolved",
      "category": "comment",
      "stableReferences": "commentId"
    },
    {
      "type": "comment.reopened",
      "category": "comment",
      "stableReferences": "commentId"
    },
    {
      "type": "object.lock_added",
      "category": "lock",
      "stableReferences": "lockId, objectId"
    },
    {
      "type": "object.lock_released",
      "category": "lock",
      "stableReferences": "lockId, objectId"
    },
    {
      "type": "constraint.warning_waived",
      "category": "approval",
      "stableReferences": "waiverId, constraintId, proposalId, validationInputFingerprint"
    },
    {
      "type": "plan.undone",
      "category": "plan",
      "stableReferences": "toVersion, planFingerprint"
    },
    {
      "type": "plan.redone",
      "category": "plan",
      "stableReferences": "toVersion, planFingerprint"
    },
    {
      "type": "simulation.started",
      "category": "simulation",
      "stableReferences": "runId, scenarioId, branchId, inputFingerprint"
    },
    {
      "type": "simulation.completed",
      "category": "simulation",
      "stableReferences": "runId, scenarioId, branchId, inputFingerprint"
    },
    {
      "type": "simulation.cancelled",
      "category": "simulation",
      "stableReferences": "runId, scenarioId, branchId, inputFingerprint"
    }
  ],
  "versions": [
    {
      "surface": "Project record",
      "current": "10",
      "compatibility": "Exact current schema only; older records are rejected."
    },
    {
      "surface": "Spatial geometry",
      "current": "1",
      "compatibility": "Canonical metres with millimetre serialization precision."
    },
    {
      "surface": "Venue Template catalog",
      "current": "1",
      "compatibility": "Exact current schema only; older template documents are rejected."
    },
    {
      "surface": "Validation engine",
      "current": "2.7.0",
      "compatibility": "Comparable only when engine and immutable input fingerprints match."
    },
    {
      "surface": "Simulation engine",
      "current": "1.2.1",
      "compatibility": "Comparison requires matching engine and Scenario definition fingerprints."
    },
    {
      "surface": "Activity Ledger",
      "current": "1",
      "compatibility": "Hash-chain verification is required on load, replay, and export."
    },
    {
      "surface": "Tool contracts",
      "current": "1.6.0",
      "compatibility": "Shared by WebMCP, standalone MCP, schemas, examples, and skills."
    },
    {
      "surface": "MCP server",
      "current": "0.7.0",
      "compatibility": "Preferred protocol 2026-07-28; minimum 2025-03-26."
    },
    {
      "surface": "TypeScript SDK",
      "current": "0.1.0",
      "compatibility": "ESM-only on Node.js 22+; SDK SemVer remains independent of tool, adapter, and Project schema versions."
    },
    {
      "surface": "Agent skills",
      "current": "1.4.0",
      "compatibility": "Targets tool contract 1.6.0."
    },
    {
      "surface": "Interchange Package",
      "current": "1 + Project schema 10",
      "compatibility": "Create-only import with exact schema, checksum, geometry, Locks, ledger, and replay preflight."
    }
  ],
  "deprecationPolicy": [
    {
      "change": "Breaking contract or schema",
      "policy": "Publish a new major contract or schema version with an explicit migration path; retain the prior published artifact."
    },
    {
      "change": "Additive field or operation",
      "policy": "Publish a minor tool-contract release and update generated schemas, examples, skills, and changelog together."
    },
    {
      "change": "Clarification or remediation text",
      "policy": "Publish a patch release when runtime behavior is unchanged."
    },
    {
      "change": "Deprecated tool or field",
      "policy": "Mark it in machine-readable metadata and the changelog for at least one full minor release before removal."
    },
    {
      "change": "Stable identifier",
      "policy": "Preserve it across revisions and migrations; create a new ID only when identity or transformed lineage changes."
    }
  ]
}
