schema_version: 1

# Phase 2.5 の舞台・状況カタログ。
# 外部構図・ワイルドカード原文は使わず、場所と出来事を日本語で選べる抽象データだけを持つ。
# 販売ジャンル、キャラ、相手役、衣装、作品タイトルは持たない。
locations:
  home:
    label: 自宅・住居
    default_environment: indoor
    details:
      living_room: {label: リビング, environment: indoor, prompt: "living room"}
      bedroom: {label: 寝室, environment: indoor, prompt: "bedroom"}
      kitchen: {label: キッチン, environment: indoor, prompt: "kitchen"}
      balcony: {label: ベランダ・バルコニー, environment: outdoor, prompt: "residential balcony"}
      # ★2026-08-05 追加(ユーザー決定): 和室は「選んだときだけ出す」。
      #   実測: リビングを選んでも畳が敷かれた絵になった。プロンプトにも打ち消しにも
      #   和室の語は1文字も無く、**モデル自身の癖**だった。
      #   → 和室以外の場所では和室の語を打ち消し(build_setting_prompt が付ける)、
      #     和室を出したい人はここで明示的に選ぶ、という棲み分けにする。
      washitsu: {label: 和室（畳）, environment: indoor, prompt: "japanese room, tatami floor, shoji screens", japanese_style: true}
      genkan: {label: 玄関, environment: indoor, prompt: "house entrance hall"}

  lodging:
    label: ホテル・旅館
    default_environment: indoor
    details:
      hotel_room: {label: ホテル客室, environment: indoor, prompt: "hotel room"}
      # ★★2026-08-19 修正: 日本風の舞台なのに `japanese_style` が無く、
      #   選んだ本人の指定を**打ち消していた**。build_setting_prompt は
      #   「和室系でない舞台」に `tatami, fusuma, shouji, sliding doors,
      #   east asian architecture, washitsu` を打ち消しとして足すので、
      #   旅館・温泉・神社を選ぶと畳も障子も出ないようにされていた。
      ryokan_room: {label: 旅館の客室, environment: indoor, prompt: "japanese inn guest room", japanese_style: true}
      lodging_corridor: {label: 館内の廊下, environment: indoor, prompt: "hotel corridor"}
      lodging_lounge: {label: ラウンジ, environment: indoor, prompt: "hotel lounge"}

  hot_spring:
    label: 温泉・浴場
    default_environment: mixed
    details:
      changing_room: {label: 脱衣所, environment: indoor, prompt: "hot spring changing room", japanese_style: true}
      indoor_bath: {label: 内湯, environment: indoor, prompt: "indoor hot spring bath", japanese_style: true}
      open_air_bath: {label: 露天風呂, environment: outdoor, prompt: "open-air hot spring bath", japanese_style: true}
      ryokan_after_bath: {label: 湯上がりの旅館客室, environment: indoor, prompt: "japanese inn room after bathing", japanese_style: true}

  education_adult:
    label: 学校・教育施設（全員成人）
    default_environment: indoor
    details:
      # ★★2026-08-21: この4つは **語が1つも効いていなかった**(全部 Danbooru 0枚)。
      #   college classroom 0 / adult students 0 / adult training room 0 /
      #   academic building corridor 0 / adult setting 0 / gymnasium 0
      #   = 場所を選んでも絵に何も届いていなかった。実在する語へ差し替え(枚数は実測)。
      #   ★あわせて `adult ○○` の年齢語を外した(オーナー決定: 年齢の出どころは PLATE 01 だけ)。
      #     どのみち0枚で効いておらず、成人であることの担保にはなっていなかった。
      college_classroom: {label: 大学・成人向け教室, environment: indoor, prompt: "classroom, chalkboard, desk"}
      training_room: {label: 研修室・講義室, environment: indoor, prompt: "office, desk, indoors"}
      education_corridor: {label: 校舎風の廊下, environment: indoor, prompt: "hallway, school"}
      gymnasium: {label: 体育館, environment: indoor, prompt: "school gym, indoors"}

  medical:
    label: 病院・医療施設
    default_environment: indoor
    details:
      hospital_room: {label: 病室, environment: indoor, prompt: "hospital room"}
      examination_room: {label: 診察室, environment: indoor, prompt: "medical examination room"}
      waiting_room: {label: 待合室, environment: indoor, prompt: "hospital waiting room"}
      medical_corridor: {label: 病院の廊下, environment: indoor, prompt: "hospital corridor"}

  workplace:
    label: 職場・業務施設
    default_environment: indoor
    details:
      office: {label: オフィス, environment: indoor, prompt: "office interior"}
      meeting_room: {label: 会議室, environment: indoor, prompt: "meeting room"}
      break_room: {label: 休憩室, environment: indoor, prompt: "workplace break room"}
      warehouse: {label: 倉庫・バックヤード, environment: indoor, prompt: "warehouse back room"}

  transport:
    label: 乗り物・移動施設
    default_environment: indoor
    details:
      train_car: {label: 電車内, environment: indoor, prompt: "train interior"}
      car_interior: {label: 車内, environment: indoor, prompt: "car interior"}
      station: {label: 駅・待合所, environment: indoor, prompt: "station waiting area"}
      roadside_stop: {label: 道の駅・休憩所, environment: mixed, prompt: "roadside rest area"}

  beach_pool:
    label: 海・プール
    default_environment: outdoor
    details:
      beach: {label: 海辺・砂浜, environment: outdoor, prompt: "beach, sandy shore"}
      outdoor_pool: {label: 屋外プール, environment: outdoor, prompt: "outdoor poolside"}
      indoor_pool: {label: 屋内プール, environment: indoor, prompt: "indoor swimming pool"}
      pool_changing_room: {label: プールの更衣室, environment: indoor, prompt: "pool changing room"}

  mountain_forest:
    label: 山・森・登山
    default_environment: outdoor
    details:
      trailhead: {label: 登山口, environment: outdoor, prompt: "mountain trailhead"}
      mountain_trail: {label: 登山道, environment: outdoor, prompt: "mountain trail in a forest"}
      forest_clearing: {label: 森の開けた場所, environment: outdoor, prompt: "forest clearing"}
      mountain_summit: {label: 山頂・展望地点, environment: outdoor, prompt: "mountain summit viewpoint"}
      mountain_hut: {label: 山小屋, environment: indoor, prompt: "mountain hut interior"}

  campsite:
    label: キャンプ・アウトドア施設
    default_environment: outdoor
    details:
      campsite_ground: {label: キャンプサイト, environment: outdoor, prompt: "campsite"}
      inside_tent: {label: テント内, environment: indoor, prompt: "inside a camping tent"}
      cabin: {label: コテージ・キャビン, environment: indoor, prompt: "cabin interior"}
      lakeside: {label: 湖畔, environment: outdoor, prompt: "lakeside campsite"}

  shrine_temple:
    label: 神社・寺院
    default_environment: mixed
    details:
      shrine_grounds: {label: 境内, environment: outdoor, prompt: "shrine grounds", japanese_style: true}
      shrine_approach: {label: 参道, environment: outdoor, prompt: "shrine approach", japanese_style: true}
      worship_hall: {label: 拝殿・本堂, environment: indoor, prompt: "shrine worship hall interior", japanese_style: true}
      traditional_room: {label: 和室・控室, environment: indoor, prompt: "traditional japanese waiting room", japanese_style: true}

  urban_outdoor:
    label: 街中・屋外
    default_environment: outdoor
    details:
      rooftop: {label: 屋上, environment: outdoor, prompt: "urban rooftop"}
      alley: {label: 路地, environment: outdoor, prompt: "quiet urban alley"}
      park: {label: 公園, environment: outdoor, prompt: "city park"}
      riverside: {label: 河川敷, environment: outdoor, prompt: "urban riverside"}

  other:
    label: その他・自由指定
    default_environment: mixed
    details:
      other_indoor: {label: その他の屋内, environment: indoor, prompt: "custom indoor location"}
      other_outdoor: {label: その他の屋外, environment: outdoor, prompt: "custom outdoor location"}

situations:
  - {key: daily_time, label: 日常のひととき, locations: []}
  - {key: date, label: デート, locations: []}
  - {key: reunion, label: 再会, locations: []}
  - {key: alone_together, label: 偶然二人きりになる, locations: []}
  - {key: trip, label: 旅行, locations: [lodging, hot_spring, transport, beach_pool, mountain_forest, campsite]}
  - {key: hot_spring_trip, label: 温泉旅行, locations: [hot_spring, lodging]}
  - {key: business_trip, label: 出張・宿泊, locations: [lodging, workplace, transport]}
  - {key: after_training, label: 授業・研修後（全員成人）, locations: [education_adult, workplace]}
  - {key: hospital_visit, label: 入院・見舞い, locations: [medical]}
  - {key: medical_check, label: 診察・検査, locations: [medical]}
  - {key: hiking, label: 登山中, locations: [mountain_forest]}
  - {key: summit_break, label: 山頂・休憩中, locations: [mountain_forest]}
  - {key: camping, label: キャンプ中, locations: [campsite, mountain_forest]}
  - {key: swimming, label: 海水浴・プール, locations: [beach_pool]}
  - {key: rain_shelter, label: 雨宿り, locations: [urban_outdoor, mountain_forest, shrine_temple]}
  - {key: festival_visit, label: 祭り・参拝, locations: [shrine_temple, urban_outdoor]}
  - {key: overtime, label: 残業中・仕事の後, locations: [workplace]}
  - {key: in_transit, label: 移動中・待ち時間, locations: [transport]}
  - {key: custom, label: その他・自由指定, locations: []}

time_of_day:
  - {key: morning, label: 朝}
  - {key: daytime, label: 昼}
  - {key: evening, label: 夕方}
  - {key: night, label: 夜}
  - {key: late_night, label: 深夜}
  - {key: dawn, label: 明け方}

seasons:
  - {key: spring, label: 春}
  - {key: summer, label: 夏}
  - {key: autumn, label: 秋}
  - {key: winter, label: 冬}

weather:
  - {key: clear, label: 晴れ}
  - {key: cloudy, label: 曇り}
  - {key: rain, label: 雨}
  - {key: snow, label: 雪}
  - {key: fog, label: 霧}

privacy:
  - {key: private, label: 完全な二人きり}
  - {key: secluded, label: 人目につきにくい}
  - {key: people_nearby, label: 近くに人がいる}
  - {key: public, label: 人目のある場所}
