{ "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" ] }