schema_version: 1

# PLATE 03「▼ この行から」で行に足せるオプション(はじめから入っているもの)。
#
# ★2026-08-06 新設(ユーザー要望): キスを「種類の中から選ぶ」形にするため。
#   母乳のように1語で足りるものと違い、キスは段階ごとに使い分ける
#   (導入=寸前・頬 / 前段=フレンチ・首筋 / 中核=無理やり・唾液の橋)。
#
# ルールは2つだけ:
#   ・同じ category の中では **1つだけ**(キスのフレンチとディープは同時に選べない)
#   ・違う category は **重ねられる**(母乳 ＋ キス は両立する)
#
# 利用者が自分で足したオプション(work/custom_tags.json)はここに載らず、
# 画面では「その他」として並ぶ。既存の登録は消さない。
#
# uses_mouth   = 口を使うオプション(2026-08-06 追加)。口淫・クンニ等の
#   「口がふさがっているカード」に重ねると矛盾するので、画面が注意を出す(止めはしない)。
#
# needs_partner = 相手役が要るオプション(2026-08-06 追加)。キスは相手がいないと成立しない。
#   相手役が出ないカードの行では、画面がチェックできないようにする(押しても絵にならないため)。
#
# phase_hint = 向く段階。画面の選択肢に添えて「どこで使うか」を迷わせないための表示専用。
#   生成には使わない(段階を勝手に絞ると、使いたい人が使えなくなるため)。

options:
  # ── キス ──────────────────────────────────────────────
  # 出典: ユーザー提示 https://ai-nante.com/kiss-prompt-guide/
  #   ★「唾液の橋」だけは同ページに無い。ユーザーが明示で希望(2026-08-06)。
  - {label: "キス寸前",     en: "imminent kiss",     category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "導入・接近"}
  # ★2026-08-18 追加(ユーザー要望「舌を絡ませない普通のキスが無い」)。
  #   ★★A/B の結果 **まだ不十分**（K5）。`kiss, closed eyes` では **唇が合わなかった**
  #     （男性が顔の横にキスする絵になる）。K2/K3 で唇が合ったのは `tongue` / `french kiss` が
  #     入っていたときだけで、**唇を合わせる力はそちらが持っている**と分かった。
  #   → 次の A/B で「french kiss ＋ 舌を打ち消す」を試す。それまでは暫定でこの語のまま置く
  #     （選択肢は消さない。[[feedback-never-hide-user-choices]]）。
  - {label: "普通のキス(舌なし)", en: "kiss, closed eyes", category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "導入・接近"}
  - {label: "頬にキス",     en: "kissing cheek",     category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "導入・接近"}
  - {label: "額にキス",     en: "kissing forehead",  category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "導入・接近"}
  - {label: "フレンチキス", en: "french kiss, tongue",       category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "接近・前段(舌を絡めるディープキス)"}
  - {label: "首筋にキス",   en: "kissing neck",      category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "接近・前段"}
  - {label: "耳にキス",     en: "licking ear",       category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "接近・前段"}
  # ★★2026-08-18 夕 撤回(ユーザー指摘)。同日に一度 `french kiss, hand on another's head` へ
  #   置き換えたが、**実際には forced kiss で良い絵が出ていた**というユーザーの観察があり戻した。
  #   Claude は Danbooru の枚数(forced_kiss 395枚)だけで「効かない」と判断し、**絵を1枚も見ていなかった**。
  #   枚数が少なくても、`forced` + `kiss` は自然文として意味が通る(kiss 自体は 94,601枚)。
  #   ★`hand on another's head`(52,291枚) は「頭を掴む」という**別の仕草**を持ち込むので、
  #     狙い(無理やり感)とずれる可能性が高い。ユーザーの直感どおり。
  #   → 実画像の A/B で決める(scripts/kiss_ab.py)。それまでは**元の出方を動かさない**。
  #   ★★2026-08-18 A/B で決着(scripts/kiss_ab.py・実画像10枚)。ユーザーの案が正解だった。
  #     K1 `forced kiss`        → **唇が合わず、男の舌が宙に出るだけ**（これが「へたくそ」の正体）
  #     K2 `forced kiss, tongue`→ 唇が合い、舌が中央で絡む ✅
  #     K4 `french kiss, hand on another's head` → 絡みは出るが
  #        **女性が男性の頭を掴む**絵になり「無理やり」が逆転した（撤回して正解）
  #   → 決め手は**どのキス語かではなく `tongue` の1語**だった。
  #   ★★★2026-08-22 夕 実画像36枚の A/B で分かったこと(scripts/kiss_face_ab.py)。
  #     利用者の言葉:「無理矢理と言う時点で女性は嫌がっている前提。まず表情もそれに合わせた表情。
  #                   このオプションを選んだら表情が固定されるようにしたほうがいい」
  #
  #     ■ 効かなかったもの(全部 0.000 = 1枚も描かれない)
  #        frown / disgust / scowl / grimace / glaring / angry / wince / turning head /
  #        furrowed brow / v-shaped eyebrows(262,607枚!) / >_<(93,528枚)
  #        理由① `french kiss` の読み取りが 0.97〜0.98 と強すぎ、顔だけのドアップになる
  #        理由② ★リタは前髪パッツン(blunt_bangs 0.50〜0.66)で**眉が隠れている**。
  #               眉の語は枚数に関係なく描かれない = キャラの髪型の制約であって語の問題ではない
  #     ■ 効いたもの(これだけで組む)
  #        closed eyes           0.95   目を固く閉じる
  #        looking at another    0.41   目を開けて相手を見る(冷めた目)
  #        looking to the side  278,022枚・相手を避けて別の所を見る（★利用者の指定）
  #        closed mouth          0.32   口を閉じて拒む(舌が 0.88→0.06 に落ちる=舌なしの絵)
  #        profile               0.12   横顔(弱い)
  #     ■ 赤面は「相手役から外すだけ」では消えない(3/3枚に出た)。**打ち消しまで要る**(0/3)
  #
  #   ★★★2026-08-22 深夜 全面的に作り直した。**私が考えた語の束(`faces`)は撤回した。**
  #
  #   撤回した理由: 利用者が「凛子では嫌そうな顔が出ている」という絵を21枚渡してくれた。
  #   突き合わせたら、**答えは既にツールの中にあった**。
  #
  #     | 語 | ①明らかに嫌そう(14枚) | ③嫌→感じてきてる(4枚) |
  #     |---|---:|---:|
  #     | clenched teeth |  9/14 | 0/4 |
  #     | frown          |  3/14 | 0/4 |
  #     | disgust        |  2/14 | 0/4 |
  #     | blush/nose blush | 1/14 | **4/4** |
  #     | open mouth     |  2/14 | 3/4 |
  #
  #   出どころは **`wildcards/nsfw/expr_*_unwilling.txt`(2026-08-18 から在る「嫌がる」束)**。
  #   凛子はこの束から段ごとに表情を引いていた。**新しい語は1つも要らなかった。**
  #   ★私は4巡72枚を「新しい語を当てる」ことに使い、既にある道具を見ていなかった
  #     ([[rule-look-for-existing-tool-first]])。
  #
  #   → だからこのオプションがやることは2つだけ:
  #       `attitude: unwilling` … この行の表情を「嫌がる束」から引く（既存の仕組みをそのまま使う）
  #       `no_blush: true`      … 赤面を消す。**赤面の有無だけで①と③が完全に分かれる**
  #
  #   ★★赤面のいちばん大きな出どころは**相手役の型**だった。
  #     リタの `plump_gentle_middle`(善良なぽっちゃり中年男性) は
  #     `blush_level: blushing` を**既定で**持っており、`blush, nose blush`(4,047,289枚)が
  #     全カットで女性へ染み出していた。凛子の型には入っていない。これが最大の差。
  #     → ここでの打ち消しは対症療法。**相手役の「紅潮」を「なし」にするのが本筋**
  #       （利用者が PLATE 03 で選べる。画面に注意を出す）。
  - {label: "無理やりキス", en: "forced kiss, tongue", category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "中核・山場(寝取られ向き)",
     attitude: unwilling, no_blush: true}
  - {label: "キス直後",     en: "after kiss",        category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "中核・余韻"}
  # 唇が離れて唾液が糸を引く絵。「途中で抜けるようなキス」(ユーザーの言葉)。
  #   after kiss だけだと離れた後の顔になりやすいので、糸を引く語を明示で足す。
  - {label: "唾液の橋(途中で抜ける)", en: "saliva trail, tongue out, after kiss",
     category: "キス", needs_partner: true, needs: face, uses_mouth: true, phase_hint: "中核・山場"}

  # ── 縛り・拘束 ────────────────────────────────────────
  # 2026-08-06 追加(ユーザー要望)。出典: danbooru の bondage 関連タグ群
  #   (shibari / bound arms / gag / handcuffs / suspension などが標準語彙)。
  # ★亀甲縛りは「六角形の縄目」を指す固有タグが無いので、形を言葉で足してある。
  - {label: "目隠し",         en: "blindfold",                                   category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "亀甲縛り",       en: "shibari, rope",                              category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "後ろ手縛り",     en: "arms behind back, bound wrists, rope",        category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "手首を縛る",     en: "bound wrists, rope",                          category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "猿ぐつわ",       en: "gag, cloth gag",                              category: "縛り・拘束", uses_mouth: true, phase_hint: "★口を使うカードとは両立しない"}
  - {label: "ボールギャグ",   en: "ball gag, drooling",                          category: "縛り・拘束", uses_mouth: true, phase_hint: "★口を使うカードとは両立しない"}
  - {label: "手錠",           en: "handcuffs",                                   category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "首輪とリード",   en: "collar, leash",                               category: "縛り・拘束", phase_hint: "接近以降"}
  - {label: "吊り",           en: "suspension, rope",                            category: "縛り・拘束", phase_hint: "中核・山場(構図を選ぶ)"}

  # ── 愛撫 ────────────────────────────────────────────
  # 2026-08-06 追加(ユーザー要望): 「正常位をしながら乳首を吸う」のように、
  #   別の見せ場に**重ねる**ための短い言い方。
  # ★カード(scenes/cards.yaml の fore_nipple_suck 等)とは別物。
  #   カード = その1枚の主題(語を3つ持つ) / ここ = 他の体位に乗せる(語は1つだけ)。
  #   語を増やすと体位のほうが負けるので、**あえて短くしてある**。
  - {label: "乳首を吸う",     en: "breast sucking",                category: "愛撫", needs_partner: true, needs: chest, uses_mouth: true, phase_hint: "前段〜中核に重ねる"}
  - {label: "乳首を舐める",   en: "licking nipple",                category: "愛撫", needs_partner: true, needs: chest, uses_mouth: true, phase_hint: "前段〜中核に重ねる"}
  - {label: "乳を揉む",       en: "grabbing another's breast",     category: "愛撫", needs_partner: true, phase_hint: "接近〜中核に重ねる"}
  - {label: "背後から乳を揉む", en: "grabbing another's breast, from behind", category: "愛撫", needs_partner: true, phase_hint: "背後からの構図に重ねる"}

  # ── 小道具 ──────────────────────────────────────────
  - {label: "ローター",       en: "vibrator, sex toy",                           category: "小道具", phase_hint: "前段・中核"}
  - {label: "バイブ",         en: "dildo, sex toy",                              category: "小道具", phase_hint: "前段・中核"}
  - {label: "ローション",     en: "shiny skin",                                  category: "小道具", phase_hint: "前段以降"}
  - {label: "湯気・もや",     en: "steam",                                       category: "小道具", phase_hint: "風呂・温泉のとき"}

  # ── 体の状態 ────────────────────────────────────────
  - {label: "妊婦",           en: "pregnant",                                    category: "体の状態", phase_hint: "作品を通して"}

# ★入れなかったもの(理由つき・2026-08-06 調査)
#   表情まわり(アヘ顔・涙・よだれ・潮吹き・汗・紅潮)は **すでに段階ごとに自動で回っている**
#   (pipeline/story.py の phase_expr。中核なら「全顔紅潮/喘ぎ/舌出し」等を順に割り当てる)。
#   ここにオプションとして足すと同じ絵に同じ方向の語が二重に乗り、綱引きになる。
#   どうしても固定したい場合だけ、行に手入力で足すのが安全。
#   衣装の乱れは PLATE 02 の6段階、相手役の見た目は PLATE 03 の相手役欄が持っている。

# ★口を使うカードにキスを足すと矛盾する(口が2つの仕事を同時にできない)。
#   画面で注意を出すために、ここに「口を使うカード」を挙げておく。
#   止めはしない(作者の判断で通せる)。実際に矛盾するかは絵を見ないと分からないため。
mouth_busy_cards:
  - fore_fellatio
  - fore_irrumatio
  - fore_cunnilingus
  - fore_double_bj
  - fore_bj_hj
  - fore_nipple_lick
  - fore_nipple_suck
  # ★2026-08-18 追加(新設カード)。口を使うので、キスのオプションと重ねると矛盾する。
  - fore_male_nipple_lick
  - climax_in_mouth
