changedInput schema / properties / extras / description
Previous value: -"Optional details that make a date specific: what they do, where they're from, how they dress, hobbies, quirks, up to three profile prompts, the voice kit and up to 20 facts. All optional and public, except facts marked private. They shape the dialogue, never the outcome."New value: +"Optional details (all public, except facts marked private). Keys: occupation, hometown, style, signature_item, go_to_order, walk_on_music, quirk, catchphrase, hidden_talent, pet_peeve, guilty_pleasure, ideal_first_date, green_flag, red_flag, star_sign, love_language, hobbies (list), prompts ([{id, answer}], two for the swipe deck), lines ({hello, dodge, flirt, upset}), tells ({nervous, smitten, bored, annoyed}), never_says (list), facts ([{label, value, private?}], up to 20). Exact shape and limits: the resource botchelor://schema/character (also /character.schema.json)."
removedInput schema / properties / extras / properties
Removed value: -{
- "catchphrase": {
- "description": "Catchphrase",
- "maxLength": 80,
- "type": "string"
- },
- "facts": {
- "description": "Up to 20 facts of your own, each a label and a value (\"Allergic to\" / \"coriander\", \"Secretly collects\" / \"hotel soap\"). Public by default (shown on the card and in search); private: true keeps one to the character itself (it shapes them on dates and is never shown or said outright). A date brings out a few per act, never all at once. They never change how a date ends.",
- "items": {
- "additionalProperties": false,
- "properties": {
- "label": {
- "maxLength": 40,
- "type": "string"
- },
- "private": {
- "description": "true: only the character and its owner ever see it.",
- "type": "boolean"
- },
- "value": {
- "maxLength": 140,
- "type": "string"
- }
- },
- "required": [
- "label",
- "value"
- ],
- "type": "object"
- },
- "maxItems": 20,
- "type": "array"
- },
- "go_to_order": {
- "description": "Go-to order",
- "maxLength": 60,
- "type": "string"
- },
- "green_flag": {
- "description": "Green flag",
- "maxLength": 80,
- "type": "string"
- },
- "guilty_pleasure": {
- "description": "Guilty pleasure",
- "maxLength": 80,
- "type": "string"
- },
- "hidden_talent": {
- "description": "Hidden talent",
- "maxLength": 80,
- "type": "string"
- },
- "hobbies": {
- "items": {
- "maxLength": 30,
- "type": "string"
- },
- "maxItems": 5,
- "type": "array"
- },
- "hometown": {
- "description": "Hometown",
- "maxLength": 60,
- "type": "string"
- },
- "ideal_first_date": {
- "description": "Ideal first date",
- "maxLength": 120,
- "type": "string"
- },
- "lines": {
- "additionalProperties": false,
- "description": "Sample lines in the character's own voice — the strongest way to make their dates sound like them. The model matches their rhythm and word choice, and never repeats one word for word.",
- "properties": {
- "dodge": {
- "description": "How they dodge a question",
- "maxLength": 140,
- "type": "string"
- },
- "flirt": {
- "description": "How they flirt (or try to)",
- "maxLength": 140,
- "type": "string"
- },
- "hello": {
- "description": "How they say hello",
- "maxLength": 140,
- "type": "string"
- },
- "upset": {
- "description": "When something goes wrong",
- "maxLength": 140,
- "type": "string"
- }
- },
- "type": "object"
- },
- "love_language": {
- "enum": [
- "Words of affirmation",
- "Quality time",
- "Gifts",
- "Acts of service",
- "Physical touch"
- ],
- "type": "string"
- },
- "never_says": {
- "description": "Words or phrases they'd never say. A line that uses one is sent back for a rewrite.",
- "items": {
- "maxLength": 40,
- "type": "string"
- },
- "maxItems": 5,
- "type": "array"
- },
- "occupation": {
- "description": "Occupation",
- "maxLength": 60,
- "type": "string"
- },
- "pet_peeve": {
- "description": "Pet peeve",
- "maxLength": 80,
- "type": "string"
- },
- "prompts": {
- "description": "Profile prompts, answered in the character's voice. Prompt ids: win_me_over (\"The way to win me over is…\"), irrational_fear (\"My most irrational fear…\"), weirdly_attracted (\"I'm weirdly attracted to…\"), two_truths (\"Two truths and a lie…\"), simple_pleasures (\"My simple pleasures…\"), fall_for_you (\"I'll fall for you if…\"), dating_me_is_like (\"Dating me is like…\"), geek_out (\"I geek out on…\"), worst_first_date (\"My worst first-date story…\"), shower_thought (\"A shower thought I recently had…\"), together_we_could (\"Together, we could…\"), unpopular_opinion (\"My most unpopular opinion…\").",
- "items": {
- "additionalProperties": false,
- "properties": {
- "answer": {
- "maxLength": 160,
- "type": "string"
- },
- "id": {
- "enum": [
- "win_me_over",
- "irrational_fear",
- "weirdly_attracted",
- "two_truths",
- "simple_pleasures",
- "fall_for_you",
- "dating_me_is_like",
- "geek_out",
- "worst_first_date",
- "shower_thought",
- "together_we_could",
- "unpopular_opinion"
- ],
- "type": "string"
- }
- },
- "required": [
- "id",
- "answer"
- ],
- "type": "object"
- },
- "maxItems": 3,
- "type": "array"
- },
- "quirk": {
- "description": "Quirk",
- "maxLength": 120,
- "type": "string"
- },
- "red_flag": {
- "description": "Red flag they ignore",
- "maxLength": 80,
- "type": "string"
- },
- "signature_item": {
- "description": "Signature item",
- "maxLength": 60,
- "type": "string"
- },
- "star_sign": {
- "enum": [
- "Aries",
- "Taurus",
- "Gemini",
- "Cancer",
- "Leo",
- "Virgo",
- "Libra",
- "Scorpio",
- "Sagittarius",
- "Capricorn",
- "Aquarius",
- "Pisces",
- "Doesn't believe in it"
- ],
- "type": "string"
- },
- "style": {
- "description": "Style",
- "maxLength": 80,
- "type": "string"
- },
- "tells": {
- "additionalProperties": false,
- "description": "Habits that slip out when they feel a certain way. Each act of a date surfaces the one that fits how the date is going for them (nervous at first, then smitten, bored or annoyed).",
- "properties": {
- "annoyed": {
- "description": "When something annoys them, they…",
- "maxLength": 100,
- "type": "string"
- },
- "bored": {
- "description": "When they're bored, they…",
- "maxLength": 100,
- "type": "string"
- },
- "nervous": {
- "description": "When they're nervous, they…",
- "maxLength": 100,
- "type": "string"
- },
- "smitten": {
- "description": "When they like someone, they…",
- "maxLength": 100,
- "type": "string"
- }
- },
- "type": "object"
- },
- "walk_on_music": {
- "description": "Walk-on music",
- "maxLength": 80,
- "type": "string"
- }
-}