52 lines
1.3 KiB
JSON
52 lines
1.3 KiB
JSON
{
|
|
"type": "object",
|
|
"properties": {
|
|
"trait_updates": {
|
|
"type": "array",
|
|
"items": {
|
|
"type": "object",
|
|
"properties": {
|
|
"trait_name": {
|
|
"type": "string",
|
|
"pattern": "^[a-zA-Z]+$",
|
|
"description": "Single word trait name (shy, confident, romantic, etc.)"
|
|
},
|
|
"action": {
|
|
"type": "string",
|
|
"enum": [
|
|
"create",
|
|
"strengthen",
|
|
"weaken"
|
|
]
|
|
},
|
|
"new_strength": {
|
|
"type": "integer",
|
|
"minimum": 1,
|
|
"maximum": 10
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"maxLength": 60,
|
|
"description": "Very short description of the trait itself."
|
|
},
|
|
"reasoning": {
|
|
"type": "string",
|
|
"maxLength": 80,
|
|
"description": "Brief explanation why this observation affects this trait (max 80 chars)"
|
|
}
|
|
},
|
|
"required": [
|
|
"trait_name",
|
|
"action",
|
|
"description",
|
|
"reasoning"
|
|
]
|
|
},
|
|
"maxItems": 2,
|
|
"description": "Max 2 trait updates per observation. Empty array if no trait impact."
|
|
}
|
|
},
|
|
"required": [
|
|
"trait_updates"
|
|
]
|
|
} |