@nodaro/shared 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (665) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +32 -0
  3. package/dist/index.cjs +12506 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +12269 -0
  6. package/dist/index.d.ts +12269 -0
  7. package/dist/index.js +11831 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +54 -0
  10. package/src/__tests__/__snapshots__/prompt-builder-segments.test.ts.snap +65 -0
  11. package/src/__tests__/ai-avatar-pricing.test.ts +321 -0
  12. package/src/__tests__/apply-video-negative-prompt.test.ts +76 -0
  13. package/src/__tests__/attach-columns.test.ts +28 -0
  14. package/src/__tests__/audio-crossfade-curves.test.ts +33 -0
  15. package/src/__tests__/build-model-menu.test.ts +58 -0
  16. package/src/__tests__/character-aspect-defaults.test.ts +142 -0
  17. package/src/__tests__/character-mention-slug.test.ts +199 -0
  18. package/src/__tests__/character-reference-photo-kinds.test.ts +32 -0
  19. package/src/__tests__/character-usage-mode.test.ts +147 -0
  20. package/src/__tests__/character-variant-assets.test.ts +142 -0
  21. package/src/__tests__/character-voice.test.ts +130 -0
  22. package/src/__tests__/cinematic-avatar-pricing.test.ts +119 -0
  23. package/src/__tests__/combine-transitions.test.ts +137 -0
  24. package/src/__tests__/component-types.test.ts +87 -0
  25. package/src/__tests__/condition-variables.test.ts +98 -0
  26. package/src/__tests__/credit-identifiers.test.ts +811 -0
  27. package/src/__tests__/default-video-provider.test.ts +63 -0
  28. package/src/__tests__/entity-image-handle.test.ts +43 -0
  29. package/src/__tests__/entity-variants.test.ts +33 -0
  30. package/src/__tests__/fal-lip-sync-sets.test.ts +31 -0
  31. package/src/__tests__/featured-entities.test.ts +33 -0
  32. package/src/__tests__/film-pricing.test.ts +64 -0
  33. package/src/__tests__/filter-condition.test.ts +285 -0
  34. package/src/__tests__/freecut-protocol.test.ts +35 -0
  35. package/src/__tests__/generate-text-items.test.ts +19 -0
  36. package/src/__tests__/generated-results.test.ts +50 -0
  37. package/src/__tests__/graph-utils.test.ts +618 -0
  38. package/src/__tests__/group-aggregation.test.ts +83 -0
  39. package/src/__tests__/i18n-locale-completeness.test.ts +156 -0
  40. package/src/__tests__/image-critic-node.test.ts +86 -0
  41. package/src/__tests__/image-mask-mode.test.ts +16 -0
  42. package/src/__tests__/image-ref-limit.test.ts +78 -0
  43. package/src/__tests__/inpaint-region.test.ts +24 -0
  44. package/src/__tests__/input-field-map-parity.test.ts +30 -0
  45. package/src/__tests__/json-evaluator.test.ts +289 -0
  46. package/src/__tests__/json-path.test.ts +64 -0
  47. package/src/__tests__/lip-sync-pricing.test.ts +142 -0
  48. package/src/__tests__/list-merge.test.ts +96 -0
  49. package/src/__tests__/list-sort.test.ts +134 -0
  50. package/src/__tests__/llm-models.test.ts +445 -0
  51. package/src/__tests__/location-mention-slug.test.ts +246 -0
  52. package/src/__tests__/locations-coverage-critic-schema.test.ts +92 -0
  53. package/src/__tests__/loop-delimiter.test.ts +39 -0
  54. package/src/__tests__/lottie-slots.test.ts +245 -0
  55. package/src/__tests__/model-catalog-flux2-resolutions.test.ts +21 -0
  56. package/src/__tests__/model-constants-location.test.ts +20 -0
  57. package/src/__tests__/model-constants.test.ts +122 -0
  58. package/src/__tests__/model-tree.test.ts +86 -0
  59. package/src/__tests__/no-internal-imports.test.ts +25 -0
  60. package/src/__tests__/node-default-mappings.test.ts +175 -0
  61. package/src/__tests__/node-mappable-fields.test.ts +7 -0
  62. package/src/__tests__/node-preset-export.test.ts +46 -0
  63. package/src/__tests__/node-preset-extract.test.ts +166 -0
  64. package/src/__tests__/node-refs-canonical.test.ts +54 -0
  65. package/src/__tests__/node-refs-combine.test.ts +54 -0
  66. package/src/__tests__/node-refs.test.ts +187 -0
  67. package/src/__tests__/node-runtime-keys.test.ts +99 -0
  68. package/src/__tests__/object-aspect-defaults.test.ts +59 -0
  69. package/src/__tests__/parameter-node-value.test.ts +137 -0
  70. package/src/__tests__/pinterest-url.test.ts +35 -0
  71. package/src/__tests__/pipeline-chat.test.ts +110 -0
  72. package/src/__tests__/pipeline-validation.test.ts +98 -0
  73. package/src/__tests__/presentation-utils.test.ts +1137 -0
  74. package/src/__tests__/producer-types.test.ts +47 -0
  75. package/src/__tests__/prompt-length-limits.test.ts +156 -0
  76. package/src/__tests__/provider-directive-defaults.test.ts +46 -0
  77. package/src/__tests__/reduce-strategy-registry.test.ts +43 -0
  78. package/src/__tests__/reference-board-templates.test.ts +33 -0
  79. package/src/__tests__/reference-roles.test.ts +36 -0
  80. package/src/__tests__/resolve-field-mappings.test.ts +110 -0
  81. package/src/__tests__/resolve-pipeline-model.test.ts +76 -0
  82. package/src/__tests__/scene-node-types.test.ts +80 -0
  83. package/src/__tests__/scraper-actors.test.ts +67 -0
  84. package/src/__tests__/seedance-2-catalog.test.ts +18 -0
  85. package/src/__tests__/seedance-2-credit-id.test.ts +23 -0
  86. package/src/__tests__/seedance-aspects.test.ts +52 -0
  87. package/src/__tests__/selector.test.ts +1151 -0
  88. package/src/__tests__/settled-with-limit.test.ts +214 -0
  89. package/src/__tests__/social-media-specs.test.ts +129 -0
  90. package/src/__tests__/sub-workflow-validation.test.ts +88 -0
  91. package/src/__tests__/switchx-pricing.test.ts +28 -0
  92. package/src/__tests__/to-connected-references.test.ts +153 -0
  93. package/src/__tests__/utilities.test.ts +541 -0
  94. package/src/__tests__/video-analysis-pricing.test.ts +58 -0
  95. package/src/__tests__/video-analysis.test.ts +63 -0
  96. package/src/__tests__/video-audio-capability.test.ts +204 -0
  97. package/src/__tests__/video-gen-providers.test.ts +28 -0
  98. package/src/__tests__/video-mode-aliases.test.ts +150 -0
  99. package/src/__tests__/video-ref-limits.test.ts +72 -0
  100. package/src/__tests__/video-utils.test.ts +303 -0
  101. package/src/__tests__/voice-changer-models.test.ts +33 -0
  102. package/src/__tests__/workflow-export-strip.test.ts +46 -0
  103. package/src/ai-avatar-pricing.ts +213 -0
  104. package/src/ancestor-refs.ts +48 -0
  105. package/src/animals.ts +231 -0
  106. package/src/audio-crossfade-curves.ts +73 -0
  107. package/src/audio-fx-presets.ts +64 -0
  108. package/src/avatar-payload-validators.ts +214 -0
  109. package/src/caption-styles.ts +31 -0
  110. package/src/character-aspect-defaults.ts +102 -0
  111. package/src/character-facets.ts +37 -0
  112. package/src/character-mention-slug.ts +166 -0
  113. package/src/character-usage-mode.ts +109 -0
  114. package/src/character-variant-assets.ts +121 -0
  115. package/src/character-voice.ts +151 -0
  116. package/src/cinematic-avatar-pricing.ts +111 -0
  117. package/src/clone-utils.ts +46 -0
  118. package/src/combine-transitions.ts +482 -0
  119. package/src/community.ts +112 -0
  120. package/src/component-types.ts +127 -0
  121. package/src/condition-variables.ts +65 -0
  122. package/src/credit-estimators/index.ts +15 -0
  123. package/src/credit-estimators/video-utils.ts +165 -0
  124. package/src/credit-identifiers.ts +304 -0
  125. package/src/entity-approval-types.ts +31 -0
  126. package/src/entity-aspect-defaults.ts +82 -0
  127. package/src/entity-asset-types.ts +296 -0
  128. package/src/entity-image-handle.ts +36 -0
  129. package/src/extra-refs.ts +139 -0
  130. package/src/featured-entities.ts +136 -0
  131. package/src/film-pricing.ts +117 -0
  132. package/src/filter-condition.ts +250 -0
  133. package/src/flux2-pricing.ts +18 -0
  134. package/src/freecut-protocol.ts +52 -0
  135. package/src/furniture.ts +167 -0
  136. package/src/generate-text-items.ts +15 -0
  137. package/src/generated-results.ts +63 -0
  138. package/src/group-aggregation.ts +75 -0
  139. package/src/hint-graph-types.ts +18 -0
  140. package/src/i18n/action-fx.ar.ts +89 -0
  141. package/src/i18n/action-fx.de.ts +89 -0
  142. package/src/i18n/action-fx.es.ts +89 -0
  143. package/src/i18n/action-fx.fr.ts +89 -0
  144. package/src/i18n/action-fx.he.ts +89 -0
  145. package/src/i18n/action-fx.hi.ts +89 -0
  146. package/src/i18n/action-fx.ja.ts +89 -0
  147. package/src/i18n/action-fx.ko.ts +89 -0
  148. package/src/i18n/action-fx.pt-BR.ts +89 -0
  149. package/src/i18n/action-fx.ru.ts +89 -0
  150. package/src/i18n/action-fx.zh-CN.ts +89 -0
  151. package/src/i18n/aesthetic.ar.ts +170 -0
  152. package/src/i18n/aesthetic.de.ts +48 -0
  153. package/src/i18n/aesthetic.es.ts +169 -0
  154. package/src/i18n/aesthetic.fr.ts +52 -0
  155. package/src/i18n/aesthetic.he.ts +169 -0
  156. package/src/i18n/aesthetic.hi.ts +55 -0
  157. package/src/i18n/aesthetic.ja.ts +165 -0
  158. package/src/i18n/aesthetic.ko.ts +169 -0
  159. package/src/i18n/aesthetic.pt-BR.ts +148 -0
  160. package/src/i18n/aesthetic.ru.ts +155 -0
  161. package/src/i18n/aesthetic.zh-CN.ts +172 -0
  162. package/src/i18n/animals.ar.ts +145 -0
  163. package/src/i18n/animals.de.ts +144 -0
  164. package/src/i18n/animals.es.ts +158 -0
  165. package/src/i18n/animals.fr.ts +144 -0
  166. package/src/i18n/animals.he.ts +155 -0
  167. package/src/i18n/animals.hi.ts +157 -0
  168. package/src/i18n/animals.ja.ts +159 -0
  169. package/src/i18n/animals.ko.ts +159 -0
  170. package/src/i18n/animals.pt-BR.ts +157 -0
  171. package/src/i18n/animals.ru.ts +155 -0
  172. package/src/i18n/animals.zh-CN.ts +155 -0
  173. package/src/i18n/atmosphere.ar.ts +49 -0
  174. package/src/i18n/atmosphere.de.ts +47 -0
  175. package/src/i18n/atmosphere.es.ts +50 -0
  176. package/src/i18n/atmosphere.fr.ts +47 -0
  177. package/src/i18n/atmosphere.he.ts +47 -0
  178. package/src/i18n/atmosphere.hi.ts +49 -0
  179. package/src/i18n/atmosphere.ja.ts +49 -0
  180. package/src/i18n/atmosphere.ko.ts +49 -0
  181. package/src/i18n/atmosphere.pt-BR.ts +49 -0
  182. package/src/i18n/atmosphere.ru.ts +47 -0
  183. package/src/i18n/atmosphere.zh-CN.ts +152 -0
  184. package/src/i18n/backdrop.ar.ts +53 -0
  185. package/src/i18n/backdrop.de.ts +46 -0
  186. package/src/i18n/backdrop.es.ts +54 -0
  187. package/src/i18n/backdrop.fr.ts +52 -0
  188. package/src/i18n/backdrop.he.ts +51 -0
  189. package/src/i18n/backdrop.hi.ts +59 -0
  190. package/src/i18n/backdrop.ja.ts +61 -0
  191. package/src/i18n/backdrop.ko.ts +59 -0
  192. package/src/i18n/backdrop.pt-BR.ts +59 -0
  193. package/src/i18n/backdrop.ru.ts +57 -0
  194. package/src/i18n/backdrop.zh-CN.ts +57 -0
  195. package/src/i18n/camera-format.ar.ts +40 -0
  196. package/src/i18n/camera-format.de.ts +37 -0
  197. package/src/i18n/camera-format.es.ts +41 -0
  198. package/src/i18n/camera-format.fr.ts +37 -0
  199. package/src/i18n/camera-format.he.ts +37 -0
  200. package/src/i18n/camera-format.hi.ts +42 -0
  201. package/src/i18n/camera-format.ja.ts +37 -0
  202. package/src/i18n/camera-format.ko.ts +37 -0
  203. package/src/i18n/camera-format.pt-BR.ts +46 -0
  204. package/src/i18n/camera-format.ru.ts +42 -0
  205. package/src/i18n/camera-format.zh-CN.ts +42 -0
  206. package/src/i18n/camera-motions.ar.ts +86 -0
  207. package/src/i18n/camera-motions.de.ts +74 -0
  208. package/src/i18n/camera-motions.es.ts +86 -0
  209. package/src/i18n/camera-motions.fr.ts +86 -0
  210. package/src/i18n/camera-motions.he.ts +86 -0
  211. package/src/i18n/camera-motions.hi.ts +99 -0
  212. package/src/i18n/camera-motions.ja.ts +99 -0
  213. package/src/i18n/camera-motions.ko.ts +99 -0
  214. package/src/i18n/camera-motions.pt-BR.ts +99 -0
  215. package/src/i18n/camera-motions.ru.ts +99 -0
  216. package/src/i18n/camera-motions.zh-CN.ts +99 -0
  217. package/src/i18n/character-fx.ar.ts +72 -0
  218. package/src/i18n/character-fx.de.ts +72 -0
  219. package/src/i18n/character-fx.es.ts +72 -0
  220. package/src/i18n/character-fx.fr.ts +72 -0
  221. package/src/i18n/character-fx.he.ts +72 -0
  222. package/src/i18n/character-fx.hi.ts +72 -0
  223. package/src/i18n/character-fx.ja.ts +72 -0
  224. package/src/i18n/character-fx.ko.ts +72 -0
  225. package/src/i18n/character-fx.pt-BR.ts +72 -0
  226. package/src/i18n/character-fx.ru.ts +72 -0
  227. package/src/i18n/character-fx.zh-CN.ts +72 -0
  228. package/src/i18n/color-look.ar.ts +50 -0
  229. package/src/i18n/color-look.de.ts +47 -0
  230. package/src/i18n/color-look.es.ts +50 -0
  231. package/src/i18n/color-look.fr.ts +50 -0
  232. package/src/i18n/color-look.he.ts +49 -0
  233. package/src/i18n/color-look.hi.ts +52 -0
  234. package/src/i18n/color-look.ja.ts +54 -0
  235. package/src/i18n/color-look.ko.ts +54 -0
  236. package/src/i18n/color-look.pt-BR.ts +54 -0
  237. package/src/i18n/color-look.ru.ts +52 -0
  238. package/src/i18n/color-look.zh-CN.ts +53 -0
  239. package/src/i18n/composition-effects.ar.ts +26 -0
  240. package/src/i18n/composition-effects.de.ts +25 -0
  241. package/src/i18n/composition-effects.es.ts +27 -0
  242. package/src/i18n/composition-effects.fr.ts +25 -0
  243. package/src/i18n/composition-effects.he.ts +25 -0
  244. package/src/i18n/composition-effects.hi.ts +27 -0
  245. package/src/i18n/composition-effects.ja.ts +27 -0
  246. package/src/i18n/composition-effects.ko.ts +27 -0
  247. package/src/i18n/composition-effects.pt-BR.ts +25 -0
  248. package/src/i18n/composition-effects.ru.ts +82 -0
  249. package/src/i18n/composition-effects.zh-CN.ts +25 -0
  250. package/src/i18n/era.ar.ts +37 -0
  251. package/src/i18n/era.de.ts +34 -0
  252. package/src/i18n/era.es.ts +37 -0
  253. package/src/i18n/era.fr.ts +37 -0
  254. package/src/i18n/era.he.ts +36 -0
  255. package/src/i18n/era.hi.ts +39 -0
  256. package/src/i18n/era.ja.ts +41 -0
  257. package/src/i18n/era.ko.ts +39 -0
  258. package/src/i18n/era.pt-BR.ts +41 -0
  259. package/src/i18n/era.ru.ts +121 -0
  260. package/src/i18n/era.zh-CN.ts +39 -0
  261. package/src/i18n/exposure-settings.ar.ts +28 -0
  262. package/src/i18n/exposure-settings.de.ts +26 -0
  263. package/src/i18n/exposure-settings.es.ts +28 -0
  264. package/src/i18n/exposure-settings.fr.ts +29 -0
  265. package/src/i18n/exposure-settings.he.ts +28 -0
  266. package/src/i18n/exposure-settings.hi.ts +31 -0
  267. package/src/i18n/exposure-settings.ja.ts +31 -0
  268. package/src/i18n/exposure-settings.ko.ts +31 -0
  269. package/src/i18n/exposure-settings.pt-BR.ts +31 -0
  270. package/src/i18n/exposure-settings.ru.ts +31 -0
  271. package/src/i18n/exposure-settings.zh-CN.ts +31 -0
  272. package/src/i18n/framing.ar.ts +78 -0
  273. package/src/i18n/framing.de.ts +73 -0
  274. package/src/i18n/framing.es.ts +78 -0
  275. package/src/i18n/framing.fr.ts +78 -0
  276. package/src/i18n/framing.he.ts +77 -0
  277. package/src/i18n/framing.hi.ts +82 -0
  278. package/src/i18n/framing.ja.ts +84 -0
  279. package/src/i18n/framing.ko.ts +82 -0
  280. package/src/i18n/framing.pt-BR.ts +84 -0
  281. package/src/i18n/framing.ru.ts +82 -0
  282. package/src/i18n/framing.zh-CN.ts +82 -0
  283. package/src/i18n/furniture.ar.ts +92 -0
  284. package/src/i18n/furniture.de.ts +93 -0
  285. package/src/i18n/furniture.es.ts +101 -0
  286. package/src/i18n/furniture.fr.ts +93 -0
  287. package/src/i18n/furniture.he.ts +101 -0
  288. package/src/i18n/furniture.hi.ts +101 -0
  289. package/src/i18n/furniture.ja.ts +101 -0
  290. package/src/i18n/furniture.ko.ts +101 -0
  291. package/src/i18n/furniture.pt-BR.ts +101 -0
  292. package/src/i18n/furniture.ru.ts +101 -0
  293. package/src/i18n/furniture.zh-CN.ts +101 -0
  294. package/src/i18n/held-prop.ar.ts +74 -0
  295. package/src/i18n/held-prop.de.ts +65 -0
  296. package/src/i18n/held-prop.es.ts +83 -0
  297. package/src/i18n/held-prop.fr.ts +74 -0
  298. package/src/i18n/held-prop.he.ts +73 -0
  299. package/src/i18n/held-prop.hi.ts +82 -0
  300. package/src/i18n/held-prop.ja.ts +84 -0
  301. package/src/i18n/held-prop.ko.ts +84 -0
  302. package/src/i18n/held-prop.pt-BR.ts +84 -0
  303. package/src/i18n/held-prop.ru.ts +82 -0
  304. package/src/i18n/held-prop.zh-CN.ts +82 -0
  305. package/src/i18n/index.ts +208 -0
  306. package/src/i18n/instrumentation.ar.ts +195 -0
  307. package/src/i18n/instrumentation.de.ts +195 -0
  308. package/src/i18n/instrumentation.es.ts +195 -0
  309. package/src/i18n/instrumentation.fr.ts +195 -0
  310. package/src/i18n/instrumentation.he.ts +195 -0
  311. package/src/i18n/instrumentation.hi.ts +195 -0
  312. package/src/i18n/instrumentation.ja.ts +195 -0
  313. package/src/i18n/instrumentation.ko.ts +195 -0
  314. package/src/i18n/instrumentation.pt-BR.ts +195 -0
  315. package/src/i18n/instrumentation.ru.ts +195 -0
  316. package/src/i18n/instrumentation.zh-CN.ts +195 -0
  317. package/src/i18n/lens.ar.ts +24 -0
  318. package/src/i18n/lens.de.ts +24 -0
  319. package/src/i18n/lens.es.ts +24 -0
  320. package/src/i18n/lens.fr.ts +24 -0
  321. package/src/i18n/lens.he.ts +24 -0
  322. package/src/i18n/lens.hi.ts +24 -0
  323. package/src/i18n/lens.ja.ts +24 -0
  324. package/src/i18n/lens.ko.ts +24 -0
  325. package/src/i18n/lens.pt-BR.ts +24 -0
  326. package/src/i18n/lens.ru.ts +25 -0
  327. package/src/i18n/lens.zh-CN.ts +24 -0
  328. package/src/i18n/lighting.ar.ts +86 -0
  329. package/src/i18n/lighting.de.ts +84 -0
  330. package/src/i18n/lighting.es.ts +89 -0
  331. package/src/i18n/lighting.fr.ts +84 -0
  332. package/src/i18n/lighting.he.ts +88 -0
  333. package/src/i18n/lighting.hi.ts +90 -0
  334. package/src/i18n/lighting.ja.ts +90 -0
  335. package/src/i18n/lighting.ko.ts +90 -0
  336. package/src/i18n/lighting.pt-BR.ts +90 -0
  337. package/src/i18n/lighting.ru.ts +88 -0
  338. package/src/i18n/lighting.zh-CN.ts +92 -0
  339. package/src/i18n/loop-subject.ar.ts +39 -0
  340. package/src/i18n/loop-subject.de.ts +39 -0
  341. package/src/i18n/loop-subject.es.ts +39 -0
  342. package/src/i18n/loop-subject.fr.ts +39 -0
  343. package/src/i18n/loop-subject.he.ts +39 -0
  344. package/src/i18n/loop-subject.hi.ts +39 -0
  345. package/src/i18n/loop-subject.ja.ts +39 -0
  346. package/src/i18n/loop-subject.ko.ts +39 -0
  347. package/src/i18n/loop-subject.pt-BR.ts +39 -0
  348. package/src/i18n/loop-subject.ru.ts +39 -0
  349. package/src/i18n/loop-subject.zh-CN.ts +39 -0
  350. package/src/i18n/materials.ar.ts +80 -0
  351. package/src/i18n/materials.de.ts +80 -0
  352. package/src/i18n/materials.es.ts +87 -0
  353. package/src/i18n/materials.fr.ts +80 -0
  354. package/src/i18n/materials.he.ts +86 -0
  355. package/src/i18n/materials.hi.ts +86 -0
  356. package/src/i18n/materials.ja.ts +88 -0
  357. package/src/i18n/materials.ko.ts +88 -0
  358. package/src/i18n/materials.pt-BR.ts +88 -0
  359. package/src/i18n/materials.ru.ts +86 -0
  360. package/src/i18n/materials.zh-CN.ts +86 -0
  361. package/src/i18n/mood.ar.ts +61 -0
  362. package/src/i18n/mood.de.ts +61 -0
  363. package/src/i18n/mood.es.ts +66 -0
  364. package/src/i18n/mood.fr.ts +61 -0
  365. package/src/i18n/mood.he.ts +64 -0
  366. package/src/i18n/mood.hi.ts +66 -0
  367. package/src/i18n/mood.ja.ts +66 -0
  368. package/src/i18n/mood.ko.ts +66 -0
  369. package/src/i18n/mood.pt-BR.ts +64 -0
  370. package/src/i18n/mood.ru.ts +64 -0
  371. package/src/i18n/mood.zh-CN.ts +64 -0
  372. package/src/i18n/music-genre.ar.ts +302 -0
  373. package/src/i18n/music-genre.de.ts +302 -0
  374. package/src/i18n/music-genre.es.ts +302 -0
  375. package/src/i18n/music-genre.fr.ts +302 -0
  376. package/src/i18n/music-genre.he.ts +302 -0
  377. package/src/i18n/music-genre.hi.ts +302 -0
  378. package/src/i18n/music-genre.ja.ts +302 -0
  379. package/src/i18n/music-genre.ko.ts +302 -0
  380. package/src/i18n/music-genre.pt-BR.ts +302 -0
  381. package/src/i18n/music-genre.ru.ts +302 -0
  382. package/src/i18n/music-genre.zh-CN.ts +302 -0
  383. package/src/i18n/music-mood.ar.ts +75 -0
  384. package/src/i18n/music-mood.de.ts +75 -0
  385. package/src/i18n/music-mood.es.ts +75 -0
  386. package/src/i18n/music-mood.fr.ts +75 -0
  387. package/src/i18n/music-mood.he.ts +75 -0
  388. package/src/i18n/music-mood.hi.ts +75 -0
  389. package/src/i18n/music-mood.ja.ts +75 -0
  390. package/src/i18n/music-mood.ko.ts +75 -0
  391. package/src/i18n/music-mood.pt-BR.ts +75 -0
  392. package/src/i18n/music-mood.ru.ts +75 -0
  393. package/src/i18n/music-mood.zh-CN.ts +75 -0
  394. package/src/i18n/person.ar.ts +638 -0
  395. package/src/i18n/person.de.ts +629 -0
  396. package/src/i18n/person.es.ts +645 -0
  397. package/src/i18n/person.fr.ts +621 -0
  398. package/src/i18n/person.he.ts +656 -0
  399. package/src/i18n/person.hi.ts +654 -0
  400. package/src/i18n/person.ja.ts +662 -0
  401. package/src/i18n/person.ko.ts +662 -0
  402. package/src/i18n/person.pt-BR.ts +656 -0
  403. package/src/i18n/person.ru.ts +656 -0
  404. package/src/i18n/person.zh-CN.ts +656 -0
  405. package/src/i18n/photo-genre.ar.ts +58 -0
  406. package/src/i18n/photo-genre.de.ts +52 -0
  407. package/src/i18n/photo-genre.es.ts +64 -0
  408. package/src/i18n/photo-genre.fr.ts +58 -0
  409. package/src/i18n/photo-genre.he.ts +62 -0
  410. package/src/i18n/photo-genre.hi.ts +63 -0
  411. package/src/i18n/photo-genre.ja.ts +65 -0
  412. package/src/i18n/photo-genre.ko.ts +63 -0
  413. package/src/i18n/photo-genre.pt-BR.ts +65 -0
  414. package/src/i18n/photo-genre.ru.ts +63 -0
  415. package/src/i18n/photo-genre.zh-CN.ts +63 -0
  416. package/src/i18n/photographer.ar.ts +75 -0
  417. package/src/i18n/photographer.de.ts +74 -0
  418. package/src/i18n/photographer.es.ts +77 -0
  419. package/src/i18n/photographer.fr.ts +77 -0
  420. package/src/i18n/photographer.he.ts +78 -0
  421. package/src/i18n/photographer.hi.ts +80 -0
  422. package/src/i18n/photographer.ja.ts +84 -0
  423. package/src/i18n/photographer.ko.ts +84 -0
  424. package/src/i18n/photographer.pt-BR.ts +83 -0
  425. package/src/i18n/photographer.ru.ts +78 -0
  426. package/src/i18n/photographer.zh-CN.ts +78 -0
  427. package/src/i18n/pose.ar.ts +95 -0
  428. package/src/i18n/pose.de.ts +96 -0
  429. package/src/i18n/pose.es.ts +104 -0
  430. package/src/i18n/pose.fr.ts +96 -0
  431. package/src/i18n/pose.he.ts +104 -0
  432. package/src/i18n/pose.hi.ts +104 -0
  433. package/src/i18n/pose.ja.ts +104 -0
  434. package/src/i18n/pose.ko.ts +104 -0
  435. package/src/i18n/pose.pt-BR.ts +104 -0
  436. package/src/i18n/pose.ru.ts +104 -0
  437. package/src/i18n/pose.zh-CN.ts +104 -0
  438. package/src/i18n/post-process-effects.ar.ts +25 -0
  439. package/src/i18n/post-process-effects.de.ts +24 -0
  440. package/src/i18n/post-process-effects.es.ts +26 -0
  441. package/src/i18n/post-process-effects.fr.ts +24 -0
  442. package/src/i18n/post-process-effects.he.ts +24 -0
  443. package/src/i18n/post-process-effects.hi.ts +26 -0
  444. package/src/i18n/post-process-effects.ja.ts +26 -0
  445. package/src/i18n/post-process-effects.ko.ts +26 -0
  446. package/src/i18n/post-process-effects.pt-BR.ts +24 -0
  447. package/src/i18n/post-process-effects.ru.ts +24 -0
  448. package/src/i18n/post-process-effects.zh-CN.ts +24 -0
  449. package/src/i18n/render-quality.ar.ts +34 -0
  450. package/src/i18n/render-quality.de.ts +30 -0
  451. package/src/i18n/render-quality.es.ts +35 -0
  452. package/src/i18n/render-quality.fr.ts +34 -0
  453. package/src/i18n/render-quality.he.ts +33 -0
  454. package/src/i18n/render-quality.hi.ts +39 -0
  455. package/src/i18n/render-quality.ja.ts +39 -0
  456. package/src/i18n/render-quality.ko.ts +39 -0
  457. package/src/i18n/render-quality.pt-BR.ts +37 -0
  458. package/src/i18n/render-quality.ru.ts +37 -0
  459. package/src/i18n/render-quality.zh-CN.ts +37 -0
  460. package/src/i18n/seasons.ar.ts +10 -0
  461. package/src/i18n/seasons.de.ts +10 -0
  462. package/src/i18n/seasons.es.ts +10 -0
  463. package/src/i18n/seasons.fr.ts +10 -0
  464. package/src/i18n/seasons.he.ts +10 -0
  465. package/src/i18n/seasons.hi.ts +10 -0
  466. package/src/i18n/seasons.ja.ts +10 -0
  467. package/src/i18n/seasons.ko.ts +10 -0
  468. package/src/i18n/seasons.pt-BR.ts +10 -0
  469. package/src/i18n/seasons.ru.ts +10 -0
  470. package/src/i18n/seasons.zh-CN.ts +10 -0
  471. package/src/i18n/setting.ar.ts +73 -0
  472. package/src/i18n/setting.de.ts +73 -0
  473. package/src/i18n/setting.es.ts +77 -0
  474. package/src/i18n/setting.fr.ts +73 -0
  475. package/src/i18n/setting.he.ts +76 -0
  476. package/src/i18n/setting.hi.ts +76 -0
  477. package/src/i18n/setting.ja.ts +78 -0
  478. package/src/i18n/setting.ko.ts +76 -0
  479. package/src/i18n/setting.pt-BR.ts +78 -0
  480. package/src/i18n/setting.ru.ts +76 -0
  481. package/src/i18n/setting.zh-CN.ts +76 -0
  482. package/src/i18n/style.ar.ts +55 -0
  483. package/src/i18n/style.de.ts +54 -0
  484. package/src/i18n/style.es.ts +54 -0
  485. package/src/i18n/style.fr.ts +54 -0
  486. package/src/i18n/style.he.ts +54 -0
  487. package/src/i18n/style.hi.ts +54 -0
  488. package/src/i18n/style.ja.ts +54 -0
  489. package/src/i18n/style.ko.ts +54 -0
  490. package/src/i18n/style.pt-BR.ts +56 -0
  491. package/src/i18n/style.ru.ts +54 -0
  492. package/src/i18n/style.zh-CN.ts +54 -0
  493. package/src/i18n/styling.ar.ts +295 -0
  494. package/src/i18n/styling.de.ts +285 -0
  495. package/src/i18n/styling.es.ts +317 -0
  496. package/src/i18n/styling.fr.ts +285 -0
  497. package/src/i18n/styling.he.ts +307 -0
  498. package/src/i18n/styling.hi.ts +323 -0
  499. package/src/i18n/styling.ja.ts +317 -0
  500. package/src/i18n/styling.ko.ts +311 -0
  501. package/src/i18n/styling.pt-BR.ts +301 -0
  502. package/src/i18n/styling.ru.ts +301 -0
  503. package/src/i18n/styling.zh-CN.ts +307 -0
  504. package/src/i18n/temporal.ar.ts +31 -0
  505. package/src/i18n/temporal.de.ts +24 -0
  506. package/src/i18n/temporal.es.ts +27 -0
  507. package/src/i18n/temporal.fr.ts +28 -0
  508. package/src/i18n/temporal.he.ts +31 -0
  509. package/src/i18n/temporal.hi.ts +31 -0
  510. package/src/i18n/temporal.ja.ts +31 -0
  511. package/src/i18n/temporal.ko.ts +31 -0
  512. package/src/i18n/temporal.pt-BR.ts +31 -0
  513. package/src/i18n/temporal.ru.ts +31 -0
  514. package/src/i18n/temporal.zh-CN.ts +31 -0
  515. package/src/i18n/transitions.ar.ts +97 -0
  516. package/src/i18n/transitions.de.ts +97 -0
  517. package/src/i18n/transitions.es.ts +97 -0
  518. package/src/i18n/transitions.fr.ts +97 -0
  519. package/src/i18n/transitions.he.ts +97 -0
  520. package/src/i18n/transitions.hi.ts +97 -0
  521. package/src/i18n/transitions.ja.ts +97 -0
  522. package/src/i18n/transitions.ko.ts +97 -0
  523. package/src/i18n/transitions.pt-BR.ts +97 -0
  524. package/src/i18n/transitions.ru.ts +97 -0
  525. package/src/i18n/transitions.zh-CN.ts +97 -0
  526. package/src/i18n/types.ts +158 -0
  527. package/src/i18n/vehicles.ar.ts +137 -0
  528. package/src/i18n/vehicles.de.ts +125 -0
  529. package/src/i18n/vehicles.es.ts +138 -0
  530. package/src/i18n/vehicles.fr.ts +125 -0
  531. package/src/i18n/vehicles.he.ts +136 -0
  532. package/src/i18n/vehicles.hi.ts +138 -0
  533. package/src/i18n/vehicles.ja.ts +138 -0
  534. package/src/i18n/vehicles.ko.ts +138 -0
  535. package/src/i18n/vehicles.pt-BR.ts +136 -0
  536. package/src/i18n/vehicles.ru.ts +136 -0
  537. package/src/i18n/vehicles.zh-CN.ts +136 -0
  538. package/src/i18n/voice-character.ar.ts +126 -0
  539. package/src/i18n/voice-character.de.ts +126 -0
  540. package/src/i18n/voice-character.es.ts +126 -0
  541. package/src/i18n/voice-character.fr.ts +126 -0
  542. package/src/i18n/voice-character.he.ts +126 -0
  543. package/src/i18n/voice-character.hi.ts +126 -0
  544. package/src/i18n/voice-character.ja.ts +126 -0
  545. package/src/i18n/voice-character.ko.ts +126 -0
  546. package/src/i18n/voice-character.pt-BR.ts +126 -0
  547. package/src/i18n/voice-character.ru.ts +126 -0
  548. package/src/i18n/voice-character.zh-CN.ts +126 -0
  549. package/src/i18n/voice-delivery.ar.ts +77 -0
  550. package/src/i18n/voice-delivery.de.ts +77 -0
  551. package/src/i18n/voice-delivery.es.ts +77 -0
  552. package/src/i18n/voice-delivery.fr.ts +77 -0
  553. package/src/i18n/voice-delivery.he.ts +77 -0
  554. package/src/i18n/voice-delivery.hi.ts +77 -0
  555. package/src/i18n/voice-delivery.ja.ts +77 -0
  556. package/src/i18n/voice-delivery.ko.ts +77 -0
  557. package/src/i18n/voice-delivery.pt-BR.ts +77 -0
  558. package/src/i18n/voice-delivery.ru.ts +77 -0
  559. package/src/i18n/voice-delivery.zh-CN.ts +77 -0
  560. package/src/i18n/weapons.ar.ts +115 -0
  561. package/src/i18n/weapons.de.ts +114 -0
  562. package/src/i18n/weapons.es.ts +116 -0
  563. package/src/i18n/weapons.fr.ts +103 -0
  564. package/src/i18n/weapons.he.ts +114 -0
  565. package/src/i18n/weapons.hi.ts +116 -0
  566. package/src/i18n/weapons.ja.ts +116 -0
  567. package/src/i18n/weapons.ko.ts +116 -0
  568. package/src/i18n/weapons.pt-BR.ts +114 -0
  569. package/src/i18n/weapons.ru.ts +114 -0
  570. package/src/i18n/weapons.zh-CN.ts +114 -0
  571. package/src/image-critic-node.ts +61 -0
  572. package/src/image-critic-types.ts +40 -0
  573. package/src/index.ts +866 -0
  574. package/src/inject-upstream.ts +15 -0
  575. package/src/inpaint-region.ts +51 -0
  576. package/src/json-evaluator.ts +732 -0
  577. package/src/json-path.ts +52 -0
  578. package/src/lip-sync-pricing.ts +90 -0
  579. package/src/list-merge.ts +40 -0
  580. package/src/list-sort.ts +122 -0
  581. package/src/list-source-resolver.ts +50 -0
  582. package/src/llm-models.ts +245 -0
  583. package/src/location-mention-slug.ts +291 -0
  584. package/src/location-preset-catalog-map.ts +128 -0
  585. package/src/loop-delimiter.ts +73 -0
  586. package/src/lora-routing.ts +95 -0
  587. package/src/lottie-overlay-catalog.ts +175 -0
  588. package/src/lottie-slots.ts +309 -0
  589. package/src/model-catalog.ts +2386 -0
  590. package/src/model-constants.ts +1910 -0
  591. package/src/model-tree.ts +120 -0
  592. package/src/monetization.ts +15 -0
  593. package/src/multi-pick.ts +42 -0
  594. package/src/node-default-mappings.ts +262 -0
  595. package/src/node-mappable-fields.ts +70 -0
  596. package/src/node-preset-export.ts +56 -0
  597. package/src/node-preset-extract.ts +147 -0
  598. package/src/node-refs.ts +253 -0
  599. package/src/node-runtime-keys.ts +117 -0
  600. package/src/object-aspect-defaults.ts +72 -0
  601. package/src/object-picker-types.ts +22 -0
  602. package/src/parameter-node-value.ts +284 -0
  603. package/src/pinterest-url.ts +28 -0
  604. package/src/pipeline-chat.ts +72 -0
  605. package/src/pipeline-defaults.ts +318 -0
  606. package/src/pipeline-events.ts +162 -0
  607. package/src/pipeline-state-types.ts +196 -0
  608. package/src/pipeline-types.ts +647 -0
  609. package/src/pipeline-validation.ts +87 -0
  610. package/src/presentation-types.ts +23 -0
  611. package/src/presentation-utils.ts +397 -0
  612. package/src/producer-types.ts +188 -0
  613. package/src/progress-curve.ts +99 -0
  614. package/src/provider-directive-defaults.ts +69 -0
  615. package/src/reduce-strategy-registry.ts +121 -0
  616. package/src/reference-board-templates.ts +81 -0
  617. package/src/reference-roles.ts +153 -0
  618. package/src/reference-sheet/__tests__/board-to-column.test.ts +20 -0
  619. package/src/reference-sheet/__tests__/catalog.test.ts +50 -0
  620. package/src/reference-sheet/__tests__/cost.test.ts +38 -0
  621. package/src/reference-sheet/__tests__/no-drift.test.ts +28 -0
  622. package/src/reference-sheet/__tests__/panel-plan.test.ts +61 -0
  623. package/src/reference-sheet/__tests__/panel-prompts.test.ts +17 -0
  624. package/src/reference-sheet/__tests__/plan-generation.test.ts +72 -0
  625. package/src/reference-sheet/__tests__/presets.test.ts +54 -0
  626. package/src/reference-sheet/__tests__/types.test.ts +24 -0
  627. package/src/reference-sheet/catalog.ts +144 -0
  628. package/src/reference-sheet/cost.ts +37 -0
  629. package/src/reference-sheet/credit-id.ts +7 -0
  630. package/src/reference-sheet/index.ts +8 -0
  631. package/src/reference-sheet/panel-plan.ts +65 -0
  632. package/src/reference-sheet/panel-prompts.ts +14 -0
  633. package/src/reference-sheet/plan-generation.ts +79 -0
  634. package/src/reference-sheet/presets.ts +77 -0
  635. package/src/reference-sheet/types.ts +92 -0
  636. package/src/repeat-types.ts +97 -0
  637. package/src/resolve-field-mappings.ts +119 -0
  638. package/src/route-filter.ts +80 -0
  639. package/src/scene-helper-types.ts +249 -0
  640. package/src/scene-node-types.ts +281 -0
  641. package/src/scraper-actors.ts +57 -0
  642. package/src/scraper-output-schemas.ts +25 -0
  643. package/src/seasons.ts +45 -0
  644. package/src/selector.ts +864 -0
  645. package/src/settled-with-limit.ts +42 -0
  646. package/src/shot-element.ts +43 -0
  647. package/src/social-media-specs.ts +121 -0
  648. package/src/social-post.ts +24 -0
  649. package/src/sub-workflow-validation.ts +78 -0
  650. package/src/supported-fonts.ts +40 -0
  651. package/src/surround.ts +113 -0
  652. package/src/switchx-pricing.ts +33 -0
  653. package/src/text-separators.ts +59 -0
  654. package/src/to-connected-references.ts +77 -0
  655. package/src/types.ts +272 -0
  656. package/src/variant-job-id.ts +17 -0
  657. package/src/vehicles.ts +213 -0
  658. package/src/video-analysis-pricing.ts +74 -0
  659. package/src/video-analysis.ts +127 -0
  660. package/src/video-duration.ts +25 -0
  661. package/src/voice-changer-models.ts +36 -0
  662. package/src/voice-matcher-types.ts +37 -0
  663. package/src/voices.ts +92 -0
  664. package/src/weapons.ts +190 -0
  665. package/src/workflow-export.ts +153 -0
@@ -0,0 +1,662 @@
1
+ import type { LocaleCatalogMap } from "./types.js"
2
+
3
+ const map: LocaleCatalogMap = {
4
+ // Type
5
+ "man": { label: "男性", description: "成人男性" },
6
+ "woman": { label: "女性", description: "成人女性" },
7
+ "not-defined": { label: "未指定", description: "性別を指定しない(オープン)" },
8
+ "beautiful-woman": { label: "美しい女性", description: "古典的に美しい女性" },
9
+ "girl-next-door": { label: "ガール・ネクスト・ドア", description: "親しみやすく素朴で健全" },
10
+ "handsome-man": { label: "ハンサムな男性", description: "古典的にハンサムな男性" },
11
+ "boy-next-door": { label: "ボーイ・ネクスト・ドア", description: "親しみやすく素朴で健全" },
12
+ "gentleman": { label: "紳士", description: "洗練された古典的で磨かれた男性" },
13
+ "elegant-woman": { label: "エレガントな女性", description: "気品ある洗練された女性" },
14
+ "rugged-man": { label: "ラギッドな男性", description: "風雪に耐えた荒々しい男性" },
15
+ "bad-boy": { label: "バッドボーイ", description: "反抗的でエッジの効いた男性らしさ" },
16
+ "graceful-woman": { label: "優雅な女性", description: "穏やかで優雅な女性" },
17
+ "baddie": { label: "バディ", description: "自信に満ちた、トレンディでスタイリッシュな女性" },
18
+ "stylish-influencer": { label: "スタイリッシュなインフルエンサー", description: "洗練されたソーシャルメディアのトレンドセッター" },
19
+ "stunning-model": { label: "華麗なモデル", description: "ファッションモデルの美意識" },
20
+ "supermodel": { label: "スーパーモデル", description: "ランウェイと表紙を飾るトップティアの象徴的存在" },
21
+ "femme-fatale": { label: "ファム・ファタール", description: "魅惑的で危険なノワールの誘惑者" },
22
+ "tough-guy": { label: "タフガイ", description: "鍛えられたタフな男性" },
23
+ "wise-elder": { label: "賢明な年長者", description: "歳を重ねて知る年長者" },
24
+ "silver-fox": { label: "シルバーフォックス", description: "気品ある魅力的な年配の男性" },
25
+ "mysterious-figure": { label: "謎の人物", description: "謎めいた人物" },
26
+
27
+ // Age
28
+ "age-baby": { label: "赤ちゃん", description: "2歳未満" },
29
+ "age-child": { label: "子ども", description: "5〜12歳前後" },
30
+ "age-teen": { label: "ティーンエイジャー", description: "13〜19歳" },
31
+ "age-20s": { label: "20代", description: "20代" },
32
+ "age-30s": { label: "30代", description: "30代" },
33
+ "age-40s": { label: "40代", description: "40代" },
34
+ "age-50s": { label: "50代", description: "50代" },
35
+ "age-60s": { label: "60代", description: "60代" },
36
+ "age-elderly": { label: "高齢", description: "70歳以上" },
37
+
38
+ // Ethnicity
39
+ "asian-any": { label: "アジア系(任意)", description: "アジア系全般 — 地域不問" },
40
+ "east-asian": { label: "東アジア系(任意)", description: "東アジア系の特徴(広義)" },
41
+ "chinese": { label: "中国系", description: "漢民族の特徴" },
42
+ "japanese": { label: "日本人", description: "日本人の特徴" },
43
+ "korean": { label: "韓国系", description: "韓国系の特徴" },
44
+ "mongolian-tibetan": { label: "モンゴル/チベット系", description: "モンゴル/チベット系の特徴" },
45
+ "south-asian": { label: "南アジア系/インド系", description: "インド/パキスタン/バングラデシュ/スリランカ" },
46
+ "southeast-asian": { label: "東南アジア系(任意)", description: "東南アジア系(広義)" },
47
+ "thai": { label: "タイ系", description: "タイ系の特徴" },
48
+ "vietnamese": { label: "ベトナム系", description: "ベトナム系の特徴" },
49
+ "indonesian-malay": { label: "インドネシア/マレー系", description: "インドネシア/マレー系の特徴" },
50
+ "khmer": { label: "クメール/カンボジア系", description: "クメール/カンボジア系の特徴" },
51
+ "filipino": { label: "フィリピン系", description: "フィリピン系の特徴(アジア+スペインの遺伝)" },
52
+ "mena-any": { label: "中東/北アフリカ系(任意)", description: "MENA系全般 — 不特定" },
53
+ "middle-eastern": { label: "中東(アラブ)系", description: "アラブ/レバント/湾岸の特徴" },
54
+ "turkish": { label: "トルコ系", description: "アナトリア・トルコ系の特徴" },
55
+ "persian": { label: "ペルシャ/イラン系", description: "インド・イラン系の特徴" },
56
+ "israeli": { label: "イスラエル系", description: "イスラエルの特徴(地中海・レヴァント系、広義)" },
57
+ "african": { label: "アフリカ系(任意)", description: "サハラ以南のアフリカ系全般 — 地域不問" },
58
+ "west-african": { label: "西アフリカ系", description: "ヨルバ/イボ/アカン/ウォロフ" },
59
+ "east-african": { label: "東アフリカ系", description: "ソマリ/エチオピア/スワヒリ" },
60
+ "central-african": { label: "中央アフリカ系", description: "バントゥ/コンゴ/アンゴラ" },
61
+ "southern-african": { label: "南部アフリカ系", description: "ズールー/コーサ/ソト" },
62
+ "afro-caribbean": { label: "アフロ・カリブ系", description: "英語圏カリブ(ジャマイカ/トリニダード/バルバドス)" },
63
+ "european-any": { label: "ヨーロッパ系(任意)", description: "ヨーロッパ系全般 — 地域不問" },
64
+ "nordic": { label: "ノルディック系(共通)", description: "スカンジナビア/北欧全般 — 地域指定なし" },
65
+ "swedish": { label: "スウェーデン系", description: "スウェーデン — 長身、ブロンドが多い、繊細な顔立ち" },
66
+ "norwegian": { label: "ノルウェー系", description: "ノルウェー — 色白、明るい瞳の傾向" },
67
+ "danish": { label: "デンマーク系", description: "デンマーク — 柔らかな顔立ち、アッシュブロンドが多い" },
68
+ "finnish": { label: "フィンランド系", description: "フィンランド — ウラル系の顔立ち、高い頬骨" },
69
+ "icelandic": { label: "アイスランド系", description: "アイスランド — ノース+ケルト混血、シャープで鋭角的な顔立ち" },
70
+ "celtic": { label: "ケルト系", description: "イギリス/アイルランド系の特徴" },
71
+ "mediterranean": { label: "地中海系", description: "南欧(広義)" },
72
+ "slavic": { label: "スラヴ系", description: "東欧の特徴" },
73
+ "czech": { label: "チェコ系", description: "チェコの特徴(西スラヴ系、中欧)" },
74
+ "russian": { label: "ロシア系", description: "ロシアの特徴(東スラヴ系)" },
75
+ "ukrainian": { label: "ウクライナ系", description: "ウクライナの特徴(東スラヴ系)" },
76
+ "italian": { label: "イタリア系", description: "イタリア系の特徴" },
77
+ "iberian": { label: "イベリア(スペイン/ポルトガル)系", description: "ケルト・イベリア+ムーア系の遺伝を持つスペイン/ポルトガル系" },
78
+ "french": { label: "フランス系", description: "フランス系の特徴(北から南で多様)" },
79
+ "germanic": { label: "ゲルマン系", description: "ドイツ/オーストリア/オランダ/スイスドイツ系" },
80
+ "greek": { label: "ギリシャ系", description: "ギリシャ系の特徴" },
81
+ "baltic": { label: "バルト系", description: "リトアニア/ラトビア/エストニア" },
82
+ "latin-american": { label: "ラテンアメリカ系(任意)", description: "ラテンアメリカ系全般 — 不特定" },
83
+ "mexican-mesoamerican": { label: "メキシコ/メソアメリカ系", description: "メキシコ/グアテマラ/中米メスティーソ" },
84
+ "caribbean-latino": { label: "カリブ系ラテン", description: "キューバ/ドミニカ/プエルトリコ" },
85
+ "brazilian": { label: "ブラジル系", description: "ブラジル系(ポルトガル+アフリカ+先住民)" },
86
+ "andean-indigenous": { label: "アンデス/先住民ラテン", description: "ケチュア/アイマラ/マヤ/ナワ" },
87
+ "southern-cone": { label: "南部円錐ヨーロッパ系", description: "アルゼンチン/ウルグアイ/チリ(主にヨーロッパ系)" },
88
+ "indigenous-any": { label: "先住民(任意)", description: "先住民全般 — 集団不問" },
89
+ "native-american": { label: "ネイティブアメリカン", description: "ネイティブアメリカン/ファーストネーション" },
90
+ "aboriginal-australian": { label: "アボリジナル・オーストラリア人", description: "アボリジナル/トレス海峡諸島民" },
91
+ "pacific-islander": { label: "太平洋諸島民", description: "ポリネシア/マオリ/サモア/ハワイ" },
92
+ "inuit": { label: "イヌイット/北極系", description: "イヌイット/ユピック/アレウト" },
93
+ "mixed": { label: "混血", description: "混合の遺伝" },
94
+
95
+ // Body (frame / body-mass / bust / waist / hips / silhouette)
96
+ "frame-petite": { label: "プチ", description: "背が低く小柄な骨格" },
97
+ "frame-slim": { label: "スリム", description: "細く華奢な骨格" },
98
+ "frame-average": { label: "標準", description: "標準的な骨格" },
99
+ "frame-broad": { label: "がっしり", description: "肩幅の広いがっしりした骨格" },
100
+ "mass-lean": { label: "ほっそり", description: "ほっそりとして体脂肪が少ない" },
101
+ "mass-average": { label: "標準", description: "標準的な体格" },
102
+ "mass-full": { label: "ふくよか", description: "ふくよかな体格" },
103
+ "mass-heavy": { label: "重量級", description: "重量感のある大柄な体格" },
104
+ "bust-small": { label: "小さめ", description: "小さめのバスト" },
105
+ "bust-average": { label: "標準", description: "標準的なバスト" },
106
+ "bust-full": { label: "豊か", description: "豊かなバスト" },
107
+ "bust-very-full": { label: "とても豊か", description: "とても豊かなバスト" },
108
+ "waist-defined": { label: "くびれあり", description: "くびれのあるはっきりしたウエスト" },
109
+ "waist-average": { label: "標準", description: "標準的なウエスト" },
110
+ "waist-straight": { label: "ストレート", description: "くびれの少ないまっすぐなウエスト" },
111
+ "hips-narrow": { label: "狭い", description: "狭いヒップ" },
112
+ "hips-balanced": { label: "バランス型", description: "バランスの取れたヒップ" },
113
+ "hips-wide": { label: "広い", description: "広いヒップ" },
114
+ "silhouette-hourglass": { label: "砂時計型", description: "バストとヒップが均整し、ウエストがくびれたシルエット" },
115
+ "silhouette-rectangular": { label: "長方形", description: "上から下までまっすぐなシルエット" },
116
+ "silhouette-pear": { label: "洋なし型", description: "肩よりヒップが広いシルエット" },
117
+ "silhouette-inverted": { label: "逆三角形", description: "肩幅が広くヒップが狭いシルエット" },
118
+ "silhouette-athletic": { label: "アスレチック", description: "ほっそり引き締まったVテーパーのシルエット" },
119
+
120
+ // Face shape
121
+ "face-oval": { label: "オーバル", description: "幅よりやや長く、柔らかな曲線" },
122
+ "face-round": { label: "丸顔", description: "柔らかく円形の顔" },
123
+ "face-square": { label: "四角顔", description: "強い顎、額と顎の幅が同じ" },
124
+ "face-heart": { label: "ハート型", description: "額が広く、顎が尖る" },
125
+ "face-diamond": { label: "ダイヤモンド型", description: "額と顎が狭く、頬骨が広い" },
126
+ "face-oblong": { label: "長方形", description: "長く細い" },
127
+ "face-triangular": { label: "三角形", description: "額が狭く、顎が広い" },
128
+
129
+ // Jawline
130
+ "jaw-strong": { label: "強い", description: "鋭く定義された顎のライン" },
131
+ "jaw-soft": { label: "柔らかい", description: "柔らかく丸い顎" },
132
+ "jaw-pointed": { label: "尖った", description: "尖った顎、狭い顎ライン" },
133
+ "jaw-wide": { label: "広い", description: "広く幅広い顎" },
134
+ "jaw-double": { label: "二重あご", description: "目に見える二重あご" },
135
+
136
+ // Eye shape
137
+ "eye-almond": { label: "アーモンド型", description: "アーモンド型、わずかに上向き" },
138
+ "eye-round": { label: "丸い", description: "大きく丸い目" },
139
+ "eye-hooded": { label: "奥二重/フード", description: "上瞼がまぶたを覆う" },
140
+ "eye-monolid": { label: "一重", description: "二重まぶたなし、滑らかな瞼" },
141
+ "eye-deep-set": { label: "奥目", description: "目がより深く眼窩に収まる" },
142
+ "eye-downturned": { label: "下がり目", description: "外側の角が下がる" },
143
+ "eye-upturned": { label: "上がり目", description: "外側の角が上がる" },
144
+ "eye-wide-set": { label: "離れ目", description: "目が広く離れている" },
145
+ "eye-close-set": { label: "寄り目", description: "目が近接している" },
146
+
147
+ // Nose
148
+ "nose-straight": { label: "ストレート", description: "まっすぐな鼻筋" },
149
+ "nose-aquiline": { label: "アクィライン", description: "湾曲しフックした鼻筋" },
150
+ "nose-roman": { label: "ローマン", description: "突き出た鼻筋にわずかなコブ" },
151
+ "nose-snub": { label: "スナブ", description: "短く、わずかに上向き" },
152
+ "nose-button": { label: "ボタン", description: "小さく丸い先端" },
153
+ "nose-broad": { label: "広い", description: "広い鼻孔、広い鼻筋" },
154
+ "nose-narrow": { label: "細い", description: "細く狭い" },
155
+ "nose-hooked": { label: "フック", description: "強く湾曲したフック型の先端" },
156
+
157
+ // Lips
158
+ "lips-thin": { label: "薄い", description: "薄い唇" },
159
+ "lips-medium": { label: "ミディアム", description: "平均的な厚さ" },
160
+ "lips-full": { label: "ふっくら", description: "ふっくらとした厚い唇" },
161
+ "lips-wide": { label: "ワイド", description: "横幅の広い口" },
162
+ "lips-cupids-bow": { label: "キューピッドの弓", description: "上唇の顕著なキューピッドの弓" },
163
+ "lips-small": { label: "小さい", description: "小さくこぢんまりした口" },
164
+
165
+ // Lip state
166
+ "lip-state-chapped": { label: "ひび割れ", description: "ひび割れて乾いた、風雪を感じる唇" },
167
+ "lip-state-glossy": { label: "グロッシー", description: "高光沢のウェットルックの唇" },
168
+ "lip-state-bare": { label: "ベア", description: "自然のまま、メイクなし" },
169
+ "lip-state-bold-red": { label: "ボールドレッド", description: "彩度の高い赤い口紅のステートメント" },
170
+ "lip-state-bitten": { label: "噛みしめ", description: "下唇を軽く噛む遊び心ある仕草" },
171
+ "lip-state-parted": { label: "わずかに開いた", description: "唇がわずかに開き、息が漏れる" },
172
+ "lip-state-pursed": { label: "すぼめた", description: "唇を押し付け、前へ突き出す" },
173
+ "lip-state-pouting": { label: "ふくれ顔", description: "口を完全にふくらませる表情" },
174
+
175
+ // Hair Color
176
+ "hair-platinum": { label: "プラチナ", description: "とても淡く氷のようなプラチナ" },
177
+ "hair-creamy": { label: "クリーミー", description: "暖かなクリーム/バニラブロンド" },
178
+ "hair-blonde": { label: "ブロンド", description: "クラシックなブロンド" },
179
+ "hair-honey": { label: "ハニー", description: "暖かなハニーゴールド・ブロンド" },
180
+ "hair-strawberry": { label: "ストロベリーブロンド", description: "ピンクがかった赤みのあるブロンド" },
181
+ "hair-ash-blonde": { label: "アッシュブロンド", description: "クールでアッシュなブロンド" },
182
+ "hair-ginger": { label: "ジンジャー", description: "明るいジンジャー(赤橙色)" },
183
+ "hair-copper": { label: "カッパー", description: "鮮やかな銅色のオレンジレッド" },
184
+ "hair-red": { label: "レッド", description: "クラシックな赤い髪" },
185
+ "hair-auburn": { label: "オーバーン", description: "豊かな赤茶色" },
186
+ "hair-burgundy": { label: "バーガンディ", description: "暗いワインレッド" },
187
+ "hair-light-brown": { label: "ライトブラウン", description: "明るい茶色の髪" },
188
+ "hair-caramel": { label: "キャラメル", description: "暖かなキャラメルブラウン" },
189
+ "hair-brown": { label: "ブラウン", description: "中間の茶色" },
190
+ "hair-chestnut": { label: "栗色", description: "暖かな赤茶色の栗色" },
191
+ "hair-chocolate": { label: "チョコレート", description: "豊かな濃いチョコレートブラウン" },
192
+ "hair-dark-brown": { label: "ダークブラウン", description: "暗い茶色の髪" },
193
+ "hair-black": { label: "ブラック", description: "クラシックな黒髪" },
194
+ "hair-jet-black": { label: "ジェットブラック", description: "青みの強い深い黒髪" },
195
+ "hair-gray": { label: "グレー", description: "灰色の髪" },
196
+ "hair-salt-pepper": { label: "ごま塩", description: "黒と白が混じった髪" },
197
+ "hair-white": { label: "ホワイト", description: "白い髪" },
198
+ "hair-silver": { label: "シルバー", description: "明るいメタリックシルバー" },
199
+ "hair-rose-gold": { label: "ローズゴールド", description: "柔らかなローズゴールドメタリック" },
200
+ "hair-dyed": { label: "カラフル(任意)", description: "鮮やかに染色 — 色指定なし" },
201
+ "hair-blue": { label: "ブルー", description: "鮮やかな青に染めた髪" },
202
+ "hair-pastel-blue": { label: "パステルブルー", description: "柔らかなパステル空色" },
203
+ "hair-teal": { label: "ティール", description: "彩度の高い青緑" },
204
+ "hair-mint": { label: "ミント", description: "淡いミントグリーン" },
205
+ "hair-green": { label: "グリーン", description: "鮮やかな緑に染めた髪" },
206
+ "hair-lavender": { label: "ラベンダー", description: "柔らかなラベンダーバイオレット" },
207
+ "hair-purple": { label: "パープル", description: "深く濃いパープル" },
208
+ "hair-magenta": { label: "マゼンタ", description: "鮮やかなマゼンタピンク-パープル" },
209
+ "hair-pink": { label: "ピンク", description: "鮮やかなピンクに染めた髪" },
210
+ "hair-pastel-pink": { label: "パステルピンク", description: "柔らかなパステル綿菓子ピンク" },
211
+ "hair-peach": { label: "ピーチ", description: "暖かなピーチブロンドピンク" },
212
+ "hair-mermaid": { label: "マーメイド", description: "青緑紫の海ブレンド" },
213
+ "hair-rainbow": { label: "レインボー", description: "多色レインボーストランド" },
214
+
215
+ // Hair base
216
+ "base-bald": { label: "ハゲ/剃髪", description: "ハゲまたは完全に剃り上げた頭" },
217
+ "base-buzz": { label: "バズ", description: "とても短く刈り上げた髪" },
218
+ "base-short-straight": { label: "ショートストレート", description: "短いストレートの質感" },
219
+ "base-short-wavy": { label: "ショートウェーブ", description: "短いウェーブの質感" },
220
+ "base-short-curly": { label: "ショートカーリー", description: "短いカール" },
221
+ "base-short-coily": { label: "ショートコイリー", description: "短い強くカールした質感" },
222
+ "base-medium-straight": { label: "ミディアム・ストレート", description: "肩までのストレート" },
223
+ "base-medium-wavy": { label: "ミディアム・ウェーブ", description: "肩までのウェーブ" },
224
+ "base-medium-curly": { label: "ミディアム・カーリー", description: "肩までのカール" },
225
+ "base-medium-coily": { label: "ミディアム・コイリー", description: "肩までの強くカールした質感" },
226
+ "base-long-straight": { label: "ロング・ストレート", description: "背中の中央までのストレート" },
227
+ "base-long-wavy": { label: "ロング・ウェーブ", description: "背中の中央までのウェーブ" },
228
+ "base-long-curly": { label: "ロング・カーリー", description: "背中の中央までのカール" },
229
+ "base-long-coily": { label: "ロング・コイリー", description: "背中の中央までの強くカールした質感" },
230
+ "base-very-long-straight": { label: "とても長いストレート", description: "腰まで届くストレート" },
231
+ "base-very-long-wavy": { label: "とても長いウェーブ", description: "腰まで届くウェーブ" },
232
+ "base-very-long-curly": { label: "とても長いカーリー", description: "腰まで届くカール" },
233
+ "base-afro": { label: "アフロ", description: "ボリュームのある丸いアフロ" },
234
+ "base-thinning": { label: "薄毛/後退", description: "目に見えて薄毛または後退している生え際" },
235
+ "base-wet": { label: "ウェット", description: "濡れて滑らかな髪" },
236
+
237
+ // Eyebrows
238
+ "brows-natural": { label: "ナチュラル", description: "自然で手を加えていない眉" },
239
+ "brows-thick": { label: "太い/ふさふさ", description: "太くふさふさした眉" },
240
+ "brows-thin": { label: "細い/ペンシル", description: "細くペンシル状の眉" },
241
+ "brows-arched": { label: "アーチ", description: "強くアーチした、劇的な曲線" },
242
+ "brows-straight": { label: "ストレート", description: "平らで水平な眉" },
243
+ "brows-bold": { label: "ボールド", description: "定義された、暗く豊かな眉" },
244
+ "brows-soft": { label: "ソフト/フェード", description: "柔らかく、淡く、薄れた眉" },
245
+ "brows-microbladed": { label: "マイクロブレード", description: "描かれた/マイクロブレードでくっきりした形" },
246
+ "brows-tinted": { label: "ティント", description: "髪と異なる色に染められた眉" },
247
+ "brows-unibrow": { label: "一文字眉", description: "つながった一文字眉" },
248
+
249
+ // Skin tone
250
+ "skin-very-fair": { label: "とても色白", description: "とても色白/青白い肌" },
251
+ "skin-fair": { label: "色白", description: "色白の肌" },
252
+ "skin-medium": { label: "ミディアム", description: "中間の肌色" },
253
+ "skin-olive": { label: "オリーブ", description: "オリーブ色の肌" },
254
+ "skin-tan": { label: "タン", description: "日焼けした肌" },
255
+ "skin-brown": { label: "ブラウン", description: "茶色の肌" },
256
+ "skin-dark": { label: "ダーク", description: "濃い肌" },
257
+
258
+ // Eye color
259
+ "eyes-brown": { label: "ブラウン", description: "茶色の瞳" },
260
+ "eyes-blue": { label: "ブルー", description: "青い瞳" },
261
+ "eyes-green": { label: "グリーン", description: "緑の瞳" },
262
+ "eyes-hazel": { label: "ヘーゼル", description: "ヘーゼルの瞳" },
263
+ "eyes-gray": { label: "グレー", description: "灰色の瞳" },
264
+ "eyes-amber": { label: "アンバー", description: "琥珀色の瞳" },
265
+ "eyes-violet": { label: "バイオレット", description: "希少なバイオレットの瞳 (Liz Taylor)" },
266
+ "eyes-gold": { label: "ゴールド", description: "輝く金色の虹彩" },
267
+ "eyes-silver": { label: "シルバー", description: "淡いシルバーグレーの虹彩" },
268
+ "eyes-red": { label: "レッド", description: "赤い虹彩(アルビニズム/ファンタジー)" },
269
+ "eyes-pink": { label: "ピンク", description: "柔らかなピンクの虹彩(アルビノ/ファンタジー)" },
270
+ "eyes-turquoise": { label: "ターコイズ", description: "鮮やかなターコイズ青緑の虹彩" },
271
+
272
+ // Eye state
273
+ "eye-state-closed": { label: "閉じた", description: "目が完全に閉じ、安らかに" },
274
+ "eye-state-half-lidded": { label: "半眼", description: "瞼の重い眠そうな視線" },
275
+ "eye-state-wide-eyed": { label: "見開いた", description: "目が大きく開き、警戒/驚き" },
276
+ "eye-state-staring-camera": { label: "カメラを見つめる", description: "レンズに途切れず直接アイコンタクト" },
277
+ "eye-state-gazing-away": { label: "視線をそらす", description: "オフカメラを見て、思索的" },
278
+ "eye-state-gazing-up": { label: "上を見つめる", description: "上にあるものへ視線を向ける" },
279
+ "eye-state-gazing-down": { label: "下を見る", description: "目を伏せた" },
280
+ "eye-state-glassy": { label: "うるんだ", description: "涙でうるんだ濡れた目" },
281
+
282
+ // Facial hair
283
+ "face-clean-shaven": { label: "クリーンシェーブ", description: "綺麗に剃った顔" },
284
+ "face-stubble": { label: "無精ひげ", description: "軽い無精ひげ" },
285
+ "face-mustache": { label: "口ひげ", description: "口ひげ" },
286
+ "face-goatee": { label: "ヤギひげ", description: "ヤギひげ" },
287
+ "face-short-beard": { label: "短いあごひげ", description: "短く整えたあごひげ" },
288
+ "face-full-beard": { label: "フルビアード", description: "厚いフルビアード" },
289
+
290
+ // Skin texture
291
+ "texture-smooth": { label: "滑らか", description: "完璧で絹のように滑らかな肌" },
292
+ "texture-wrinkled": { label: "シワのある", description: "歳を重ね深いシワが刻まれた肌" },
293
+ "texture-goosebumps": { label: "鳥肌", description: "肌に鳥肌が立つ" },
294
+ "texture-dewy": { label: "デューイ", description: "輝きのあるデューイで瑞々しい肌" },
295
+ "texture-glistening": { label: "輝く", description: "汗または油の光沢" },
296
+ "texture-weathered": { label: "風雪に晒された", description: "日焼けで荒れた肌" },
297
+ "texture-porcelain": { label: "磁器のような", description: "完璧でほぼ半透明の磁器肌" },
298
+ "texture-sun-kissed": { label: "サンキスド", description: "健康的に日焼けした暖かなトーン" },
299
+ "texture-tanned": { label: "日焼けした", description: "深く均一に日焼けした肌" },
300
+ "texture-tan-lines": { label: "日焼け跡", description: "水着の日焼け跡が見える" },
301
+ "texture-freckled": { label: "そばかす", description: "頬と鼻にそばかす" },
302
+ "texture-ruddy": { label: "赤みのある", description: "頬と鼻がピンクに紅潮" },
303
+ "texture-ashen": { label: "灰白/青白い", description: "クールで青白く、ほぼ血の気のない色合い" },
304
+ "texture-oily": { label: "オイリー/光沢", description: "Tゾーンにわずかな油の光沢" },
305
+ "texture-matte": { label: "マット", description: "毛穴のないマットな仕上がり" },
306
+ "texture-blemished": { label: "シミのある", description: "目に見えるシミ、リアルな肌の不完全さ" },
307
+ "texture-baby-soft": { label: "ベイビーソフト", description: "滑らかで毛穴の細かい若々しい肌" },
308
+ "texture-shower-fresh-wet": { label: "シャワー上がりの濡れた肌", description: "シャワー上がりの濡れた肌、水滴が浮かぶ" },
309
+
310
+ // Distinctive features
311
+ "feature-glasses": { label: "メガネ", description: "メガネをかけている" },
312
+ "feature-freckles": { label: "そばかす", description: "目に見えるそばかす" },
313
+ "feature-tattoos": { label: "タトゥー", description: "目に見えるタトゥー" },
314
+ "feature-scar": { label: "傷跡", description: "顔の傷跡" },
315
+ "feature-dimples": { label: "えくぼ", description: "頬のえくぼ" },
316
+ "feature-piercing": { label: "ピアス", description: "目に見えるピアス" },
317
+ "feature-birthmark": { label: "あざ", description: "顔または肩に目に見えるあざ" },
318
+ "feature-mole": { label: "ほくろ/チャームポイント", description: "上唇付近によく見られる目立つ1つのほくろ" },
319
+ "feature-gap-teeth": { label: "すきっ歯", description: "前歯の間にすき間" },
320
+ "feature-aegyo-sal": { label: "涙袋", description: "韓国美容で重視される涙袋" },
321
+ "feature-eye-bags": { label: "目の下のクマ", description: "軽い目の下のダークサークルとクマ" },
322
+ "feature-dimpled-chin": { label: "えくぼのある顎", description: "顎に柔らかいえくぼ" },
323
+ "feature-cleft-chin": { label: "割れ顎", description: "縦に割れた顎" },
324
+ "feature-heterochromia": { label: "オッドアイ", description: "両目の虹彩が異なる色" },
325
+ "feature-vitiligo": { label: "白斑", description: "色素を失った皮膚の斑" },
326
+ "feature-sleeve-tattoo": { label: "スリーブタトゥー", description: "片腕全面のタトゥースリーブ" },
327
+ "feature-face-tattoo": { label: "フェイスタトゥー", description: "目または頬骨付近の小さなタトゥー" },
328
+ "feature-hand-tattoos": { label: "手のタトゥー", description: "拳と指のタトゥー" },
329
+ "feature-visible-piercings": { label: "目に見えるピアス", description: "セプタム、鼻、唇、耳の複数ピアスなど" },
330
+ "feature-bare-shoulders": { label: "むき出しの肩", description: "肩がむき出し" },
331
+ "feature-collarbone-visible": { label: "鎖骨が見える", description: "鎖骨がくっきり浮き出て光を捉える" },
332
+ "feature-midriff-visible": { label: "腹部が見える", description: "トップとボトムの間に素肌の腹部が見える" },
333
+ "feature-navel-visible": { label: "へそが見える", description: "むき出しのお腹にへそが見える" },
334
+ "feature-elongated-neck": { label: "長い首", description: "白鳥のように長い首" },
335
+
336
+ // Type (additional)
337
+ "femboy": { label: "フェムボーイ", description: "柔らかく女性的な男性タイプ、ジェンダーフルイドなスタイリング" },
338
+ "twink": { label: "トゥインク", description: "細身で滑らかな肌の若々しいゲイ男性タイプ" },
339
+ "soft-butch": { label: "ソフトブッチ", description: "穏やかな男性寄りの女性" },
340
+ "tomboy": { label: "トムボーイ", description: "女性的な体に少年的なスタイリングとエネルギー" },
341
+ "thick": { label: "シック", description: "豊かな曲線を持つボディポジティブな体型" },
342
+ "bear": { label: "ベア", description: "大柄でひげと体毛のある男性的タイプ" },
343
+
344
+ // Distinctive features (additional)
345
+ "feature-back-tattoo": { label: "バックタトゥー", description: "背中全面の大きなタトゥー" },
346
+ "feature-chest-tattoo": { label: "チェストタトゥー", description: "胸/デコルテのタトゥー" },
347
+ "feature-leg-tattoo": { label: "レッグタトゥー", description: "脚/ふくらはぎ/太ももに見えるタトゥー" },
348
+ "feature-forearm-tattoo": { label: "フォアームタトゥー", description: "前腕の内側または外側のタトゥー" },
349
+ "feature-ear-piercings": { label: "耳ピアス", description: "耳に複数のスタックピアス(軟骨/ヘリックス/コンク)" },
350
+ "feature-lip-piercing": { label: "リップピアス", description: "リップリングまたはラブレットスタッド" },
351
+ "feature-nostril-piercing": { label: "鼻ピアス", description: "片側の鼻孔スタッドまたはリング" },
352
+
353
+ // Eye shape (additional)
354
+ "eye-double-eyelid": { label: "二重まぶた", description: "はっきりした上瞼の二重ライン" },
355
+
356
+ // ----- New age entries -----
357
+ "age-toddler": { label: "幼児", description: "2〜3歳ごろ" },
358
+ "age-young-child": { label: "幼い子ども", description: "4〜6歳ごろ" },
359
+ "age-pre-teen": { label: "プレティーン", description: "10〜12歳ごろ" },
360
+ "age-early-teen": { label: "10代前半", description: "13〜15歳ごろ" },
361
+ "age-late-teen": { label: "10代後半", description: "16〜19歳ごろ" },
362
+ "age-early-20s": { label: "20代前半", description: "20〜23歳ごろ" },
363
+ "age-late-20s": { label: "20代後半", description: "24〜29歳ごろ" },
364
+ "age-custom": { label: "カスタム年齢...", description: "正確な年齢を年単位で指定" },
365
+
366
+ // ----- Primitive / Wild -----
367
+ "caveman": { label: "原始人(男)", description: "石器時代の原始的な男性" },
368
+ "cavewoman": { label: "原始人(女)", description: "石器時代の原始的な女性" },
369
+ "apeman": { label: "猿人", description: "半人半猿のハイブリッド" },
370
+ "feral-wildman": { label: "野生人", description: "髪の伸びた原始的な野生人間" },
371
+ "neanderthal": { label: "ネアンデルタール人", description: "現代以前の人類種" },
372
+
373
+ // ----- Fantasy -----
374
+ "elf-man": { label: "エルフ(男性)", description: "尖った耳の男性的な人型" },
375
+ "elf-woman": { label: "エルフ(女性)", description: "尖った耳の女性的な人型" },
376
+ "elf": { label: "エルフ", description: "尖った耳のスレンダーな人型" },
377
+ "half-elf": { label: "ハーフエルフ", description: "人間とエルフの混血" },
378
+ "dwarf": { label: "ドワーフ", description: "がっしりとした髭の人型" },
379
+ "orc": { label: "オーク", description: "牙を持つ重量級の人型" },
380
+ "goblin": { label: "ゴブリン", description: "小柄でいたずら好きな人型" },
381
+ "tiefling": { label: "ティーフリング", description: "角を持つ地獄の血を引く人型" },
382
+ "faun": { label: "フォーン / サテュロス", description: "山羊の脚と角を持つ人型" },
383
+ "centaur": { label: "ケンタウロス", description: "馬の体に人間の上半身" },
384
+ "vampire-man": { label: "ヴァンパイア(男性)", description: "牙を持つ青白い男性の不死者" },
385
+ "vampire-woman": { label: "ヴァンパイア(女性)", description: "牙を持つ青白い女性の不死者" },
386
+ "vampire": { label: "ヴァンパイア", description: "牙を持つ青白い不死者" },
387
+ "werewolf": { label: "狼男", description: "部分的に変身した人狼" },
388
+ "mermaid": { label: "人魚(女)", description: "魚の尾を持つ女性人型" },
389
+ "merman": { label: "人魚(男)", description: "魚の尾を持つ男性人型" },
390
+ "dragonkin": { label: "ドラゴンキン", description: "鱗のドラゴン様人型" },
391
+ "wizard": { label: "魔法使い(男)", description: "ローブ姿の男性魔術師" },
392
+ "witch": { label: "魔女", description: "ローブ姿の女性魔術師" },
393
+ "sorcerer": { label: "ソーサラー", description: "流れるローブの魔術師(男)" },
394
+ "sorceress": { label: "ソーサレス", description: "流れるローブの魔術師(女)" },
395
+ "knight-man": { label: "騎士(男性)", description: "プレートアーマーの男性戦士" },
396
+ "knight-woman": { label: "騎士(女性)", description: "プレートアーマーの女性戦士" },
397
+ "knight": { label: "騎士", description: "プレートアーマーの戦士" },
398
+ "barbarian-man": { label: "バーバリアン(男性)", description: "毛皮を纏った屈強な男性戦士" },
399
+ "barbarian-woman": { label: "バーバリアン(女性)", description: "毛皮を纏った屈強な女性戦士" },
400
+ "barbarian": { label: "バーバリアン", description: "毛皮を纏った屈強な戦士" },
401
+ "druid": { label: "ドルイド", description: "自然と結びついた神秘家" },
402
+ "ranger": { label: "レンジャー", description: "マントの弓使い・原野の斥候" },
403
+ "necromancer": { label: "ネクロマンサー", description: "青白い闇の魔術師" },
404
+ "prince": { label: "王子", description: "王族の若い男性" },
405
+ "princess": { label: "王女", description: "王族の若い女性" },
406
+
407
+ // ----- Mythic / Divine -----
408
+ "angel": { label: "天使", description: "翼を持つ神聖な人型" },
409
+ "demon": { label: "悪魔", description: "角を持つ地獄の人型" },
410
+ "ghost": { label: "幽霊", description: "半透明な霊の姿" },
411
+ "valkyrie": { label: "ヴァルキリー", description: "北欧の女戦士の精霊" },
412
+ "god": { label: "神(男)", description: "男性の神格" },
413
+ "goddess": { label: "女神", description: "女性の神格" },
414
+
415
+ // ----- Sci-Fi -----
416
+ "android-man": { label: "アンドロイド(男性)", description: "男性型ヒューマノイドロボット" },
417
+ "android-woman": { label: "アンドロイド(女性)", description: "女性型ヒューマノイドロボット" },
418
+ "android-neutral": { label: "アンドロイド", description: "性別未指定のヒューマノイドロボット" },
419
+ "cyborg-man": { label: "サイボーグ(男性)", description: "男性的な人間と機械のハイブリッド" },
420
+ "cyborg-woman": { label: "サイボーグ(女性)", description: "女性的な人間と機械のハイブリッド" },
421
+ "cyborg": { label: "サイボーグ", description: "人間と機械のハイブリッド" },
422
+ "robot": { label: "ロボット", description: "完全機械式のヒューマノイド" },
423
+ "alien": { label: "エイリアン", description: "非人間型の人型" },
424
+ "astronaut": { label: "宇宙飛行士", description: "宇宙服の宇宙探検家" },
425
+ "space-marine": { label: "スペースマリーン", description: "パワーアーマーの兵士" },
426
+ "ai-hologram": { label: "AIホログラム", description: "立体光のフィギュア" },
427
+
428
+ // ----- Heroes & Villains -----
429
+ "superhero": { label: "スーパーヒーロー", description: "マスクとマントのヒーロー" },
430
+ "superheroine": { label: "スーパーヒロイン", description: "マスクとマントのヒロイン" },
431
+ "masked-vigilante": { label: "覆面自警団", description: "暗いスーツのヒーロー" },
432
+ "supervillain": { label: "スーパーヴィラン", description: "演劇的な悪役の典型" },
433
+ "caped-crusader-man": { label: "ケープド・クルセイダー(男性)", description: "鎧とフードの男性ダークヒーロー" },
434
+ "caped-crusader-woman": { label: "ケープド・クルセイダー(女性)", description: "鎧とフードの女性ダークヒロイン" },
435
+ "caped-crusader": { label: "ケープド・クルセイダー", description: "鎧とフードのダークヒーロー" },
436
+ "super-soldier": { label: "スーパーソルジャー", description: "愛国的なエクソアーマーの戦士" },
437
+ "mutant": { label: "ミュータント", description: "目に見える変異を持つ人間" },
438
+ "magical-girl": { label: "魔法少女", description: "変身する少女ヒーローの原型" },
439
+ // ----- Anime / Anthro -----
440
+ "catgirl": { label: "猫娘", description: "猫耳と尻尾の女性" },
441
+ "catboy": { label: "猫男子", description: "猫耳と尻尾の男性" },
442
+ "anthro": { label: "ケモノ / 擬人化動物", description: "動物頭の二足歩行人型" },
443
+
444
+ // ----- Iconic / Public Domain -----
445
+ "sherlock-holmes": { label: "シャーロック・ホームズ", description: "ヴィクトリア朝の諮問探偵" },
446
+ "dracula": { label: "ドラキュラ伯爵", description: "ストーカーのゴシック・ヴァンパイア伯爵" },
447
+ "frankenstein-monster": { label: "フランケンシュタインの怪物", description: "シェリーの蘇った怪物" },
448
+ "phantom-opera": { label: "オペラ座の怪人", description: "ルルーの仮面のオペラ隠遁者" },
449
+ "mr-hyde": { label: "ハイド氏", description: "スティーヴンソンの怪物的な分身" },
450
+ "king-arthur": { label: "アーサー王", description: "伝説の中世王" },
451
+ "merlin": { label: "マーリン", description: "アーサー王の魔術師顧問" },
452
+ "robin-hood": { label: "ロビン・フッド", description: "森の無法者弓使い" },
453
+ "joan-of-arc": { label: "ジャンヌ・ダルク", description: "鎧の中世の戦乙女" },
454
+ "cleopatra": { label: "クレオパトラ", description: "エジプト最後のファラオ" },
455
+ "captain-nemo": { label: "ネモ船長", description: "ヴェルヌの潜水艦船長" },
456
+ "alice-wonderland": { label: "アリス(不思議の国)", description: "キャロルの不思議の国の少女" },
457
+ "peter-pan": { label: "ピーター・パン", description: "決して大人にならない少年" },
458
+ "dorothy-oz": { label: "ドロシー(オズ)", description: "青いギンガムのオズの少女" },
459
+ "tin-man": { label: "ブリキのきこり", description: "オズのブリキ人形" },
460
+ "scarecrow-oz": { label: "かかし(オズ)", description: "オズのわらのかかし" },
461
+ "cowardly-lion": { label: "臆病なライオン", description: "オズの擬人化ライオン" },
462
+ "santa-claus": { label: "サンタクロース", description: "クリスマスの贈り物配達人" },
463
+ "grim-reaper": { label: "死神", description: "死の擬人化" },
464
+ // ----- New Type — Warriors / Martial -----
465
+ "ninja": { label: "忍者", description: "隠密の暗殺者" },
466
+ "kunoichi": { label: "くノ一", description: "女忍者" },
467
+ "samurai-man": { label: "侍(男性)", description: "男性の鎧武者" },
468
+ "samurai-woman": { label: "侍(女性)", description: "女武者(おんな武者)" },
469
+ "samurai": { label: "侍", description: "鎧をまとった日本の武士" },
470
+ "karate-fighter": { label: "空手家", description: "道着を着た空手の使い手" },
471
+ "kung-fu-master": { label: "カンフーの達人", description: "中国武術の達人" },
472
+ "shaolin-monk": { label: "少林僧", description: "仏教の戦闘僧" },
473
+ "sumo-wrestler": { label: "力士", description: "相撲取り" },
474
+ "gladiator": { label: "剣闘士", description: "古代ローマの闘技場の戦士" },
475
+ "spartan-warrior": { label: "スパルタ戦士", description: "古代ギリシャの重装歩兵" },
476
+ "viking-warrior": { label: "ヴァイキングの戦士", description: "北欧の襲撃者" },
477
+ "mongol-warrior": { label: "モンゴルの戦士", description: "草原の騎馬弓兵" },
478
+ "centurion": { label: "百人隊長", description: "ローマ軍団の士官" },
479
+ "crusader": { label: "十字軍騎士", description: "中世の十字軍兵士" },
480
+ "pirate": { label: "海賊", description: "黄金時代の海賊" },
481
+ "musketeer": { label: "銃士", description: "17世紀フランスの剣士" },
482
+
483
+ // ----- New Type — Professions / Roles -----
484
+ "police-officer": { label: "警察官", description: "制服を着た警察官" },
485
+ "policeman": { label: "男性警察官", description: "男性の警察官" },
486
+ "policewoman": { label: "女性警察官", description: "女性の警察官" },
487
+ "firefighter": { label: "消防士", description: "防火装備の消防士" },
488
+ "doctor": { label: "医師", description: "白衣の医師" },
489
+ "surgeon": { label: "外科医", description: "手術室の外科医" },
490
+ "nurse": { label: "看護師", description: "病院の看護師" },
491
+ "chef": { label: "シェフ", description: "制服の料理人" },
492
+ "teacher": { label: "教師", description: "教室の教育者" },
493
+ "priest": { label: "司祭", description: "カトリックの聖職者" },
494
+ "nun": { label: "修道女", description: "カトリックの修道女" },
495
+ "soldier": { label: "兵士", description: "現代の軍人" },
496
+ "lawyer": { label: "弁護士", description: "スーツ姿の弁護士" },
497
+ "judge": { label: "裁判官", description: "法服の裁判官" },
498
+ "scientist": { label: "科学者", description: "白衣の研究者" },
499
+ "pilot": { label: "パイロット", description: "民間航空のパイロット" },
500
+ "flight-attendant": { label: "客室乗務員", description: "キャビンクルー" },
501
+ "construction-worker": { label: "建設作業員", description: "ヘルメット姿の建設員" },
502
+ "businessman": { label: "ビジネスマン", description: "スーツ姿の男性" },
503
+ "businesswoman": { label: "ビジネスウーマン", description: "スーツ姿の女性" },
504
+ "farmer": { label: "農家", description: "農業従事者" },
505
+ "mechanic": { label: "整備士", description: "自動車・工業の整備士" },
506
+ "artist": { label: "アーティスト", description: "画家・ビジュアルアーティスト" },
507
+ "musician": { label: "ミュージシャン", description: "楽器を持つ演奏者" },
508
+ "athlete": { label: "アスリート", description: "プロのスポーツ選手" },
509
+ "detective": { label: "刑事", description: "私服の捜査官" },
510
+ "journalist": { label: "ジャーナリスト", description: "メモ帳を持つ記者" },
511
+ "barista": { label: "バリスタ", description: "カフェの店員" },
512
+
513
+ // Regional Aesthetic
514
+ // ----- USA — Mainstream -----
515
+ "cali-beach": { label: "カリフォルニア・ビーチ", description: "のんびりとしたカリフォルニアのビーチタウン的美意識" },
516
+ "valley-girl": { label: "ヴァレーガール", description: "南カリフォルニア郊外の上品な美意識(フェミニン)" },
517
+ "norcal-hippie": { label: "北カリフォルニア・ヒッピー", description: "バークレー/ベイエリア系ヒッピーの美意識" },
518
+ "boho-la": { label: "ボーホーLA", description: "ロサンゼルスのキャニオン・ボヘミアン的美意識(フェミニン)" },
519
+ "texas-cowgirl": { label: "テキサス・カウガール", description: "テキサス西部の牧場カントリー的美意識(フェミニン)" },
520
+ "texas-cowboy": { label: "テキサス・カウボーイ", description: "テキサス西部の牧場カントリー的美意識(マスキュリン)" },
521
+ "southern-belle": { label: "サザンベル", description: "チャールストン/サバンナの南部上流階級的美意識(フェミニン)" },
522
+ "southern-gentleman": { label: "サザンジェントルマン", description: "オールドサウスの上流階級的美意識(マスキュリン)" },
523
+ "miami-latina": { label: "マイアミ・ラティーナ", description: "サウスビーチのカリブ・ラテン系美意識(フェミニン)" },
524
+ "miami-latino": { label: "マイアミ・ラティーノ", description: "サウスビーチのカリブ・ラテン系美意識(マスキュリン)" },
525
+ "hawaii-island": { label: "ハワイ・アイランド", description: "ポリネシア・パシフィック系ハワイアン美意識" },
526
+ "nyc-fashion": { label: "NYCファッション", description: "マンハッタンのエディトリアル・ファッション的美意識(フェミニン)" },
527
+ "nyc-sharp": { label: "NYCシャープ", description: "マンハッタンのパワー・テーラード美意識(マスキュリン)" },
528
+ "brooklyn-hipster": { label: "ブルックリン・ヒップスター", description: "ウィリアムズバーグのクリエイティブクラス美意識" },
529
+ "new-england-prep": { label: "ニューイングランド・プレップ", description: "ケープコッド/ナンタケットのオールドマネー・プレッピー美意識" },
530
+ "pnw-granola": { label: "PNWグラノーラ", description: "ポートランド/シアトルのアウトドア系美意識" },
531
+ "nashville-country": { label: "ナッシュビル・カントリー", description: "ミュージックシティのモダン・カントリーポップ的美意識(フェミニン)" },
532
+ "nashville-cowboy": { label: "ナッシュビル・カウボーイ", description: "ミュージックシティのモダン・カウボーイ美意識(マスキュリン)" },
533
+ "vegas-glam": { label: "ベガス・グラム", description: "ラスベガス・ストリップのグラマー美意識(フェミニン)" },
534
+ "vegas-suit": { label: "ベガス・スーツ", description: "ラスベガス・ストリップのスーツ姿の美意識(マスキュリン)" },
535
+
536
+ // ----- USA — African-American -----
537
+ "harlem-classic": { label: "ハーレム・クラシック", description: "ブラック・ニューヨークの伝統、ジャズ・エイジの優雅さ" },
538
+ "atl-southern": { label: "ATLサザン", description: "アトランタのブラック・サウス系ヒップホップ/R&B美意識" },
539
+ "nola-creole": { label: "NOLAクレオール", description: "ニューオーリンズ/ルイジアナのフレンチ・カリブ・アフリカ系美意識" },
540
+ "dmv-go-go": { label: "DMVゴーゴー", description: "DC/メリーランド/ヴァージニアのブラックDMVゴーゴー美意識" },
541
+ "west-coast-hip-hop": { label: "ウェストコースト", description: "サウスセントラル/コンプトンのウェストコースト・ヒップホップ美意識" },
542
+ "chicago-south-side": { label: "シカゴ・サウスサイド", description: "中西部ブラック・アーバンのシカゴ系美意識" },
543
+
544
+ // ----- Europe -----
545
+ "parisienne": { label: "パリジェンヌ", description: "左岸パリのフレンチシック美意識(フェミニン)" },
546
+ "parisian-flaneur": { label: "パリジャン・フラヌール", description: "左岸パリのフレンチシック美意識(マスキュリン)" },
547
+ "milanese-fashion": { label: "ミラネーゼ・ファッション", description: "イタリア・ミラノのハイファッション美意識" },
548
+ "sicilian-beach": { label: "シチリア・ビーチ", description: "地中海・南イタリアのビーチ美意識" },
549
+ "madrileña": { label: "マドリレーニャ", description: "マドリードのスペイン系美意識(フェミニン)" },
550
+ "madrileño": { label: "マドリレーニョ", description: "マドリードのスペイン系美意識(マスキュリン)" },
551
+ "catalan-modern": { label: "カタラン・モダン", description: "バルセロナの地中海デザイン美意識" },
552
+ "greek-mediterranean": { label: "ギリシャ地中海", description: "エーゲ海の島々のギリシャ系美意識" },
553
+ "scandi-minimal": { label: "スカンジ・ミニマル", description: "北欧のクリーンライン・ミニマル美意識" },
554
+ "english-rose": { label: "イングリッシュローズ", description: "英国カントリーサイドの美意識(フェミニン)" },
555
+ "london-prep": { label: "ロンドン・プレップ", description: "メイフェア/チェルシーの洗練された英国系美意識(マスキュリン)" },
556
+ "manchester-indie": { label: "マンチェスター・インディー", description: "北イングランドのギグ&雨の労働者階級クール美意識" },
557
+ "berlin-alt": { label: "ベルリン・オルタナ", description: "クロイツベルクのテクノ&アート・カウンターカルチャー美意識" },
558
+ "munich-traditional": { label: "ミュンヘン・トラディショナル", description: "バイエルン・オクトーバーフェスト的な伝統美意識" },
559
+ "eastern-european-glam": { label: "東欧グラム", description: "モスクワ/キーウの冬のグラマー美意識(フェミニン)" },
560
+ "eastern-european-stoic": { label: "東欧ストイック", description: "モスクワ/キーウの風雪に耐えた佇まいの美意識(マスキュリン)" },
561
+
562
+ // ----- Asia -----
563
+ "tokyo-harajuku": { label: "東京・原宿", description: "東京の遊び心ある表現的なストリート美意識" },
564
+ "ginza-office": { label: "銀座OL", description: "東京・銀座の日本式コーポレート・エレガント美意識" },
565
+ "shibuya-streetwear": { label: "渋谷ストリート", description: "東京・渋谷のストリートファッション美意識" },
566
+ "osaka-everyday": { label: "大阪・日常", description: "大阪の温かくカジュアルな関西系美意識" },
567
+ "seoul-k-pop": { label: "ソウル・K-POP", description: "ソウルの韓国ポップ的に磨かれた美意識" },
568
+ "gangnam-glam": { label: "江南グラム", description: "ソウル・江南の韓国ラグジュアリー地区美意識" },
569
+ "shanghai-modern": { label: "上海モダン", description: "上海の中国メトロポリタン美意識" },
570
+ "beijing-hutong": { label: "北京・胡同", description: "北京の旧市街・胡同の伝統と現代が交わる美意識" },
571
+ "hong-kong-cinematic": { label: "香港シネマティック", description: "香港のネオン・ノワール、ウォン・カーウァイ的美意識" },
572
+ "mumbai-bollywood": { label: "ムンバイ・ボリウッド", description: "ムンバイのインド映画産業的美意識" },
573
+ "south-india-traditional": { label: "南インド・トラディショナル", description: "タミル/ケララの寺院町的クラシカル美意識" },
574
+ "bangkok-street": { label: "バンコク・ストリート", description: "バンコクのナイトマーケット系ネオン都市美意識" },
575
+
576
+ // ----- Latin America -----
577
+ "carioca-rio": { label: "カリオカ(リオ)", description: "リオデジャネイロのビーチ&ファヴェーラ音楽的ブラジル美意識" },
578
+ "paulista": { label: "パウリスタ(サンパウロ)", description: "サンパウロのメトロポリタン・ブラジル系クリエイティブクラス美意識" },
579
+ "buenos-aires-tango": { label: "ブエノスアイレス・タンゴ", description: "ブエノスアイレス・レコレータ/サンテルモのタンゴ美意識(フェミニン)" },
580
+ "porteño": { label: "ポルテーニョ", description: "ブエノスアイレスの洗練されたミロンゲーロ美意識(マスキュリン)" },
581
+ "mexico-city-chic": { label: "メキシコシティ・シック", description: "CDMXのローマ/ポランコのモダン・メキシカン美意識" },
582
+ "chilango-traditional": { label: "チランゴ・トラディショナル", description: "メキシコシティの温かいフォーク&フィースト美意識" },
583
+ "bogota-cosmopolitan": { label: "ボゴタ・コスモポリタン", description: "ボゴタ・コロンビアの首都の洗練されたアンデス系美意識" },
584
+
585
+ // ----- Middle East -----
586
+ "beirut-riviera": { label: "ベイルート・リビエラ", description: "レバノン地中海のコスモポリタン美意識" },
587
+ "tel-aviv-beach": { label: "テルアビブ・ビーチ", description: "テルアビブの地中海沿岸都市・スタートアップエネルギー美意識" },
588
+ "jerusalem-stone": { label: "エルサレム・ストーン", description: "エルサレム旧市街の石灰岩・ヘリテージ美意識" },
589
+ "sabra": { label: "サブラ", description: "ネイティブ・イスラエルの直接的で温かいサブラ美意識" },
590
+ "dubai-modern": { label: "ドバイ・モダン", description: "湾岸ラグジュアリーのドバイ・コスモポリタン首長国美意識" },
591
+ "persian-glam": { label: "ペルシャン・グラム", description: "イランのヘリテージ&グラマー美意識" },
592
+ "istanbul-bosphorus": { label: "イスタンブール・ボスポラス", description: "イスタンブールの東西交差ボスポラス・オスマン&モダン美意識" },
593
+
594
+ // ----- North Africa -----
595
+ "cairene-cosmopolitan": { label: "カイロ・コスモポリタン", description: "カイロのエジプト・アラブ系メトロポリタン美意識" },
596
+ "maghreb-coastal": { label: "マグレブ・コースタル", description: "チュニス/アルジェのフレンチ・地中海・北アフリカ系の植民地港町美意識" },
597
+ "marrakech-bohemian": { label: "マラケシュ・ボヘミアン", description: "マラケシュ・モロッコのメディナの温かなスパイス美意識" },
598
+
599
+ // ----- Sub-Saharan Africa -----
600
+ "lagos-afro-glam": { label: "ラゴス・アフログラム", description: "🇬🇧 ラゴス・ナイジェリアの英語圏西アフリカ系メトロポリタン美意識" },
601
+ "accra-afro-fashion": { label: "アクラ・アフロファッション", description: "🇬🇧 アクラ・ガーナの英語圏西アフリカ系ケンテとモダンが交わる美意識" },
602
+ "dakar-francophone": { label: "ダカール・フランコフォン", description: "🇫🇷 ダカール・セネガルのフランス語圏西アフリカ系コスモポリタン沿岸美意識" },
603
+ "abidjan-cosmopolitan": { label: "アビジャン・コスモポリタン", description: "🇫🇷 アビジャン・コートジボワールのフランス語圏西アフリカ系都市美意識" },
604
+ "kinshasa-sape": { label: "キンシャサ・サップ", description: "🇫🇷 キンシャサ・コンゴのフランス語圏中央アフリカ系SAPEダンディ美意識" },
605
+ "nairobi-cosmopolitan": { label: "ナイロビ・コスモポリタン", description: "🇬🇧 ナイロビ・ケニアの英語圏東アフリカ系モダン都市美意識" },
606
+ "addis-habesha": { label: "アディス・ハベシャ", description: "アディスアベバ・エチオピアのハベシャ高地ヘリテージ美意識(エチオピアは植民地化されたことがない)" },
607
+ "swahili-coast": { label: "スワヒリ・コースト", description: "🇬🇧 ザンジバル/モンバサの英語圏東アフリカ系沿岸スワヒリ美意識" },
608
+ "johannesburg-urban": { label: "ヨハネスブルク・アーバン", description: "🇬🇧 ヨハネスブルク南アフリカの英語圏南部アフリカ系ブラック・メトロポリタン美意識" },
609
+ "cape-town-cosmopolitan": { label: "ケープタウン・コスモポリタン", description: "🇬🇧 ケープタウン南アフリカの英語圏南部アフリカ系沿岸都市美意識" },
610
+ "luanda-lusophone": { label: "ルアンダ・ルゾフォン", description: "🇵🇹 ルアンダ・アンゴラのポルトガル語圏南部アフリカ系キゾンバ&大西洋沿岸美意識" },
611
+
612
+ // ----- Oceania -----
613
+ "bondi-beach": { label: "ボンダイ・ビーチ", description: "ボンダイのオーストラリア沿岸の塩と太陽の美意識" },
614
+ "australian-outback": { label: "アウトバック", description: "オーストラリア奥地アウトバックの美意識(フェミニン)" },
615
+ "outback-stockman": { label: "アウトバック・ストックマン", description: "オーストラリア奥地アウトバックの美意識(マスキュリン)" },
616
+ "auckland-coastal": { label: "オークランド・コースタル", description: "オークランド・ニュージーランドの港湾都市的パシフィック美意識" },
617
+
618
+ // Audit follow-up gaps (2026-05-06)
619
+ "androgynous": { label: "アンドロジナス", description: "男性的・女性的要素を意図的にブレンドした風貌" },
620
+ "goth": { label: "ゴシック", description: "ゴスのサブカルチャー美意識 — ダーク、ロマンティック、劇的" },
621
+ "eye-droopy": { label: "たれ目", description: "瞼が低く下がり、柔らかく眠そうな視線(瞼の位置、目尻の角度ではない)" },
622
+ "lip-state-bold-black": { label: "ボールドブラック", description: "彩度の高い黒い口紅のステートメント(ゴシック/アヴァンギャルド)" },
623
+ "lip-state-burgundy": { label: "バーガンディ", description: "深いワインレッドの口紅" },
624
+ "lip-state-plum": { label: "プラム", description: "ダークパープル調の口紅" },
625
+ "lip-state-mauve": { label: "モーヴ", description: "くすんだモーヴ/ダスティピンクの口紅" },
626
+ "eyes-black": { label: "ブラック", description: "真の黒い虹彩(茶色より深い)" },
627
+ "skin-very-dark": { label: "とても濃い/エボニー", description: "とても濃いエボニーの肌色(スケールで最も深い)" },
628
+ "texture-acne-scarred": { label: "ニキビ跡", description: "目に見えるニキビ跡(シミとは別 — 治癒した傷跡のパターン)" },
629
+ "face-five-oclock-shadow": { label: "夕方のひげ", description: "薄い無精ひげより濃い、日中に伸びたひげ" },
630
+ "feature-under-eye-circles": { label: "目の下のクマ", description: "目の下の控えめなダークサークル(腫れぼったい目袋とは別)" },
631
+ "feature-fangs": { label: "牙", description: "目に見える牙(ヴァンパイア/キャラクター原型)" },
632
+
633
+ // ----- 顔の造形:頬骨/ふくらみ/目/鼻先/唇 -----
634
+ "cheekbones-average": { label: "標準", description: "標準的な頬骨の張り出し(強調なし)" },
635
+ "cheekbones-low": { label: "低い", description: "低く平らな頬骨" },
636
+ "cheekbones-high-defined": { label: "高く明瞭", description: "高く、はっきりと際立った頬骨" },
637
+ "cheekbones-sculpted": { label: "高く彫りが深い", description: "鋭く彫り込まれた高い頬骨" },
638
+ "cheekbones-wide": { label: "広い", description: "広く目立つ頬骨" },
639
+ "facial-fullness-average": { label: "標準", description: "標準的な顔のふくらみ" },
640
+ "facial-fullness-gaunt": { label: "やせこけた", description: "こけた頬、非常に少ない顔の脂肪" },
641
+ "facial-fullness-lean": { label: "ほっそり", description: "顔の脂肪が少なく、頬骨の下がわずかにくぼむ" },
642
+ "facial-fullness-full": { label: "ふっくら", description: "柔らかく十分にふくらんだ頬" },
643
+ "facial-fullness-round": { label: "丸顔", description: "丸い顔、柔らかく丸みのある頬" },
644
+ "eye-wide": { label: "大きい", description: "横に広く大きな目" },
645
+ "eye-narrow": { label: "細い", description: "細く切れ長の目" },
646
+ "eyelid-standard": { label: "標準", description: "標準的な上まぶた" },
647
+ "canthal-neutral": { label: "ニュートラル", description: "ニュートラルな目尻の傾き" },
648
+ "eye-spacing-average": { label: "標準", description: "標準的な目の間隔" },
649
+ "eyeset-average": { label: "標準", description: "標準的な眉と目の間隔" },
650
+ "eyeset-low": { label: "低い配置", description: "眉と目の間隔が狭い(hunter eyes)" },
651
+ "eyeset-high": { label: "高い配置", description: "眉と目の間隔がゆったり(doe eyes)" },
652
+ "nose-tip-natural": { label: "ナチュラル", description: "自然な鼻先(強調なし)" },
653
+ "nose-tip-refined": { label: "洗練", description: "洗練された細い鼻先" },
654
+ "nose-tip-upturned": { label: "上向き", description: "わずかに上向きの鼻先" },
655
+ "nose-tip-rounded": { label: "丸い", description: "柔らかく丸みのある鼻先" },
656
+ "nose-tip-drooping": { label: "下向き", description: "わずかに垂れて下を向いた鼻先" },
657
+ "lips-full-lower": { label: "下唇が厚い", description: "下唇がより厚い、ふっくらした唇" },
658
+ "lips-natural": { label: "ナチュラル", description: "自然な唇の形" },
659
+ "lips-heart": { label: "ハート型", description: "はっきりとしたキューピッドボウのあるハート型の唇" },
660
+ }
661
+
662
+ export default map