Raw schema
{
"type": "object",
"properties": {
"snapshot": {
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"author": {
"type": "string"
},
"source_model": {
"type": "string"
},
"project": {
"type": "string"
}
}
},
"context": {
"type": "object",
"properties": {
"goal": {
"type": "string"
},
"current_state": {
"type": "string"
},
"decisions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"what": {
"type": "string"
},
"why": {
"type": "string"
}
},
"required": [
"what",
"why"
]
}
},
"constraints": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"artifacts": {
"type": "object",
"properties": {
"files": {
"type": "array",
"items": {
"type": "string"
}
},
"links": {
"type": "array",
"items": {
"type": "string"
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"next_steps": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"context"
],
"description": "이어서 일하는 데 필요한 것만 구조화(대화 전체 아님)"
},
"one_time": {
"description": "true=한 번만 수신 가능",
"type": "boolean"
},
"ttl_hours": {
"type": "number"
},
"verify": {
"description": "관측 증거를 바로 첨부 → 서버가 서명 영수증 발급(E2E 관측 있어야 verified). verify를 따로 안 불러도 됨",
"type": "object",
"properties": {
"static_checks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"dim": {
"type": "string"
},
"passed": {
"type": "boolean"
},
"evidence": {
"type": "string"
}
},
"required": [
"dim",
"passed",
"evidence"
]
}
},
"e2e_evidence": {
"type": "array",
"items": {
"type": "object",
"properties": {
"claim": {
"type": "string"
},
"observed": {
"type": "boolean"
},
"detail": {
"type": "string"
}
},
"required": [
"claim",
"observed",
"detail"
]
}
},
"environment": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"artifacts": {
"type": "array",
"items": {
"type": "string"
}
},
"verifier": {
"type": "string"
}
}
},
"receipt": {
"description": "baton_verify로 이미 발급한 서명 영수증(독립 검증자가 준 경우)"
},
"verify_manifest": {
"description": "(레거시) 원시 증거 매니페스트 — 서버가 재계산"
},
"parent_code": {
"description": "이 핸드오프가 갱신하는 이전 핸드오프 코드 — 버전 체인 연결(baton_diff용)",
"type": "string"
},
"api_key": {
"description": "발급받은 API 키(없으면 Free 플랜 월 20개 한도)",
"type": "string"
},
"room": {
"description": "방 코드(BTN-R-…). 주면 핸드오프 코드를 이 방에 자동 전송 — 받는 세션은 baton_inbox에서 바로 확인(코드 복붙 불필요)",
"type": "string"
},
"member_id": {
"description": "room에 입장한 내 member_id(자동 전송 발신자)",
"type": "string"
}
},
"required": [
"snapshot"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}