@nodaro/prompts 1.20.0 → 1.23.0

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 (54) hide show
  1. package/dist/index.cjs +8214 -7143
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.d.cts +213 -61
  4. package/dist/index.d.ts +213 -61
  5. package/dist/index.js +8206 -7145
  6. package/dist/index.js.map +1 -1
  7. package/package.json +2 -2
  8. package/src/__tests__/adult-only-ratchet.test.ts +9 -1
  9. package/src/__tests__/catalog-packs.test.ts +13 -0
  10. package/src/__tests__/character-motion-audit.test.ts +77 -0
  11. package/src/__tests__/character-motion-exit-visibility.test.ts +183 -0
  12. package/src/__tests__/character-motion-partner-referent.test.ts +225 -0
  13. package/src/__tests__/character-motion.test.ts +11 -4
  14. package/src/__tests__/factory-presets.test.ts +28 -3
  15. package/src/__tests__/fixtures/parameter-hint-golden.json +22 -6
  16. package/src/__tests__/frame-delivery.test.ts +93 -0
  17. package/src/__tests__/graph-composed-unwired-identity.test.ts +166 -0
  18. package/src/__tests__/node-prompt-fields.test.ts +2 -2
  19. package/src/__tests__/parameter-prompt-hint.test.ts +9 -3
  20. package/src/__tests__/transitions-instant.test.ts +112 -0
  21. package/src/ad-creative-analysis.ts +99 -0
  22. package/src/catalog-packs.ts +13 -2
  23. package/src/character-motion/animals-pets.ts +112 -85
  24. package/src/character-motion/athletic-stunts.ts +155 -214
  25. package/src/character-motion/camera-interaction.ts +92 -133
  26. package/src/character-motion/combat-weapons.ts +143 -202
  27. package/src/character-motion/dance.ts +121 -169
  28. package/src/character-motion/entrances-exits.ts +88 -109
  29. package/src/character-motion/evasive-falls.ts +88 -130
  30. package/src/character-motion/everyday-actions.ts +233 -274
  31. package/src/character-motion/face-expression.ts +125 -178
  32. package/src/character-motion/gestures.ts +211 -304
  33. package/src/character-motion/head-gestures.ts +66 -94
  34. package/src/character-motion/idle-ambient.ts +85 -124
  35. package/src/character-motion/posture-shifts.ts +116 -139
  36. package/src/character-motion/runway.ts +73 -97
  37. package/src/character-motion/stage-performance.ts +92 -127
  38. package/src/character-motion/turns-looks.ts +86 -112
  39. package/src/character-motion/two-person.ts +241 -229
  40. package/src/character-motion/types.ts +4 -1
  41. package/src/character-motion/unnatural-horror.ts +53 -91
  42. package/src/character-motion/vehicles-mounts.ts +101 -97
  43. package/src/character-motion/walks-runs.ts +93 -121
  44. package/src/character-motion-diagnostics.ts +49 -0
  45. package/src/character-motion.ts +89 -13
  46. package/src/factory-presets/generate-video.ts +22 -0
  47. package/src/frame-delivery.ts +106 -0
  48. package/src/index.ts +7 -0
  49. package/src/node-prompt-fields.ts +4 -0
  50. package/src/parameter-prompt-hint.ts +23 -17
  51. package/src/picker-catalogs.ts +23 -2
  52. package/src/ref-binding.ts +19 -0
  53. package/src/transitions.ts +47 -10
  54. package/src/video-reference-resolver.ts +1 -1
@@ -1,233 +1,245 @@
1
1
  import type { CharacterMotion } from "./types.js"
2
2
 
3
- /** Two-Person — 76 entries. Category id `two-person`. */
3
+ /** two-person — authored motion fragments. Stable ids survive copy revisions. */
4
4
  export const TWO_PERSON_MOTIONS: ReadonlyArray<CharacterMotion> = [
5
- { id: "hug-partner", label: "Hug", category: "two-person", description: "Steps in, wraps arms around the partner, releases",
6
- promptHint: "the subject steps toward the partner, opens both arms and wraps them around the partner's back in a firm hug, holds the hug, and loosens the arms to step back",
7
- term: "hugs the partner", twoPerson: true },
8
- { id: "embrace-partner", label: "Long Embrace", category: "two-person", description: "Full hold, chin on shoulder, swaying, no release",
9
- promptHint: "the subject draws the partner into a full embrace, arms wrapped around the partner's back, chin resting on the partner's shoulder, both bodies swaying side to side as the hold continues without releasing",
10
- term: "holds the partner in a long embrace", twoPerson: true },
11
- { id: "hug-partner-from-behind", label: "Hug From Behind", category: "two-person", description: "Arms around the waist, chin on the shoulder",
12
- promptHint: "the subject walks up behind the partner, slides both arms around the partner's waist and rests the chin on the partner's shoulder, the partner leaning back into the hold",
13
- term: "hugs the partner from behind", adultOnly: true, twoPerson: true },
14
- { id: "bro-hug", label: "Bro Hug", category: "two-person", description: "Handshake pulled into a one-arm hug with a pat",
15
- promptHint: "the subject clasps the partner's hand in a handshake, pulls the partner in by that hand and wraps the free arm around the partner's back with a pat, then releases and steps back",
16
- term: "pulls the partner into a one-arm hug", twoPerson: true },
17
- { id: "run-into-partner-arms", label: "Run Into Arms", category: "two-person", description: "Runs, leaps, and is caught in a lifted hug",
18
- promptHint: "the subject runs toward the partner, leaps in the final stride and wraps arms around the partner's neck, and the partner catches the subject and holds the lifted hug",
19
- term: "runs and leaps into the partner's arms", twoPerson: true },
20
- { id: "bury-face-in-partner-shoulder", label: "Bury Face", category: "two-person", description: "Face pressed into the partner's shoulder, gripping",
21
- promptHint: "the subject steps into the partner and buries the face against the partner's shoulder, shoulders heaving, hands gripping the back of the partner's clothing as the partner's arms close around",
22
- term: "buries face in the partner's shoulder", twoPerson: true },
23
- { id: "shake-partner-hand", label: "Handshake", category: "two-person", description: "Extends a hand, grips and pumps twice, lets go",
24
- promptHint: "the subject extends the right hand toward the partner, the partner grips it, and the two pump the clasped hands up and down twice before letting go and dropping the arms",
25
- term: "shakes hands with the partner", twoPerson: true },
26
- { id: "high-five-partner", label: "High Five", category: "two-person", description: "Raised open palms slap together and rebound",
27
- promptHint: "the subject raises an open hand above shoulder height and swings it forward to slap palms with the partner's raised hand in a crisp high five, both hands rebounding after contact",
28
- term: "high-fives the partner", twoPerson: true },
29
- { id: "fist-bump-partner", label: "Fist Bump", category: "two-person", description: "Knuckles meet at chest height with a light tap",
30
- promptHint: "the subject makes a fist and extends it forward at chest height, the partner's fist meets it knuckle to knuckle with a light tap, and both fists pull back",
31
- term: "fist-bumps the partner", twoPerson: true },
32
- { id: "chest-bump-partner", label: "Chest Bump", category: "two-person", description: "Both hop in and bump chests mid-air",
33
- promptHint: "the subject hops toward the partner with the chest thrust forward, the partner hopping to meet it, the two bumping chest to chest in mid-air and landing back on their feet",
34
- term: "chest bumps the partner", twoPerson: true },
35
- { id: "pinky-promise", label: "Pinky Promise", category: "two-person", description: "Little fingers hook and shake once",
36
- promptHint: "the subject raises one hand with the little finger extended, the partner hooks a little finger around it, and the two shake the linked fingers up and down once",
37
- term: "hooks pinkies with the partner", twoPerson: true },
38
- { id: "bow-to-partner", label: "Bow to Partner", category: "two-person", description: "Bends from the waist, the partner returns the bow",
39
- promptHint: "the subject faces the partner, brings the feet together and bends forward from the waist in a respectful bow, holds it, and straightens as the partner returns the bow",
40
- term: "bows to the partner", twoPerson: true },
41
- { id: "toast-with-partner", label: "Toast", category: "two-person", description: "Glasses raised and clinked, then a drink",
42
- promptHint: "the subject raises a glass toward the partner, the partner lifts a glass to meet it, and the two glasses clink at chest height before each pulls the glass back to drink",
43
- term: "clinks glasses with the partner", twoPerson: true },
44
- { id: "kiss-partner-cheek", label: "Kiss on the Cheek", category: "two-person", description: "Leans in, kisses the partner's cheek, leans back",
45
- promptHint: "the subject leans in toward the partner, tilts the head slightly, presses a kiss to the partner's cheek, and leans back upright",
46
- term: "kisses the partner on the cheek", twoPerson: true },
47
- { id: "kiss-partner-forehead", label: "Forehead Kiss", category: "two-person", description: "Tilts the partner's head down, kisses the forehead",
48
- promptHint: "the subject draws the partner in, tilts the partner's head down slightly with one hand and presses a kiss to the partner's forehead, then leans back",
49
- term: "kisses the partner's forehead", twoPerson: true },
50
- { id: "lean-in-almost-kiss", label: "Almost Kiss", category: "two-person", description: "Leans in until lips nearly touch, and holds there",
51
- promptHint: "the subject leans in toward the partner until the lips are a breath apart, eyes dropping to the partner's mouth, and holds there without closing the last inch",
52
- term: "almost kisses the partner", adultOnly: true, twoPerson: true },
53
- { id: "kiss-partner", label: "Kiss", category: "two-person", description: "Leans in, kisses the partner on the lips, parts",
54
- promptHint: "the subject leans in toward the partner, tilts the head and presses the lips to the partner's lips in a kiss, eyes closing, then eases back until the two part",
55
- term: "kisses the partner", adultOnly: true, twoPerson: true },
56
- { id: "rise-on-tiptoes-to-kiss-partner", label: "Tiptoe Kiss", category: "two-person", description: "Rises on tiptoes to reach a taller partner's lips",
57
- promptHint: "the subject rises onto tiptoes in front of the partner, hands on the partner's shoulders for balance, and presses a kiss up to the partner's lips before settling back onto flat feet",
58
- term: "rises on tiptoes to kiss the partner", adultOnly: true, twoPerson: true },
59
- { id: "cup-partner-face", label: "Cup Face", category: "two-person", description: "Both palms cup the partner's cheeks, holding the gaze",
60
- promptHint: "the subject raises both hands to the partner's face and cups the cheeks in the palms, thumbs resting below the partner's eyes, holding the partner's gaze",
61
- term: "cups the partner's face", twoPerson: true },
62
- { id: "lift-partner-chin", label: "Lift Chin", category: "two-person", description: "A curled finger tilts the partner's lowered face up",
63
- promptHint: "the subject slides one curled finger under the partner's chin and lifts it until the partner's lowered face tilts up to meet the subject's eyes",
64
- term: "lifts the partner's chin", twoPerson: true },
65
- { id: "tuck-partner-hair-behind-ear", label: "Tuck Partner's Hair Back", category: "two-person", description: "Catches a loose strand and tucks it behind the ear",
66
- promptHint: "the subject reaches up with one hand, catches a loose strand of the partner's hair with the fingertips and tucks it back behind the partner's ear, the hand lingering at the temple",
67
- term: "tucks the partner's hair behind the ear", twoPerson: true },
68
- { id: "wipe-partner-tear", label: "Wipe Away a Tear", category: "two-person", description: "Thumb brushes a tear from the partner's cheek",
69
- promptHint: "the subject raises one hand to the partner's face and brushes a tear from the partner's cheek with the thumb, the palm resting against the partner's jaw as the partner looks up",
70
- term: "wipes a tear from the partner's cheek", twoPerson: true },
71
- { id: "touch-foreheads-with-partner", label: "Forehead Touch", category: "two-person", description: "Foreheads rest together, eyes closed, holding still",
72
- promptHint: "the subject leans in until the foreheads rest together, both closing their eyes, the subject's hands on the partner's shoulders, the two holding still together",
73
- term: "touches foreheads with the partner", twoPerson: true },
74
- { id: "rest-head-on-partner-shoulder", label: "Head on Shoulder", category: "two-person", description: "Leans sideways, head settling on the partner's shoulder",
75
- promptHint: "the subject leans sideways toward the partner and lowers the head until it rests on the partner's shoulder, eyes closing, the partner's cheek settling against the top of the subject's head",
76
- term: "rests head on the partner's shoulder", twoPerson: true },
77
- { id: "rest-head-in-partner-lap", label: "Head in Lap", category: "two-person", description: "Lies down and rests the head in the partner's lap",
78
- promptHint: "the subject lies down sideways along a seat and lowers the head to rest in the partner's lap, face turned upward, the partner's hand settling on the subject's hair",
79
- term: "rests head in the partner's lap", twoPerson: true },
80
- { id: "hold-partner-hand", label: "Hold Hands", category: "two-person", description: "Finds the partner's hand and laces fingers",
81
- promptHint: "the subject reaches sideways, finds the partner's hand and laces the fingers together, the joined hands settling between them as the two stand side by side",
82
- term: "holds hands with the partner", twoPerson: true },
83
- { id: "walk-hand-in-hand", label: "Walk Hand in Hand", category: "two-person", description: "Walks beside the partner with hands clasped",
84
- promptHint: "the subject walks forward beside the partner with their hands clasped between them, the joined arms swinging lightly with each matched step",
85
- term: "walks hand in hand with the partner", twoPerson: true },
86
- { id: "walk-arm-in-arm", label: "Walk Arm in Arm", category: "two-person", description: "Arms linked at the elbow, walking in step",
87
- promptHint: "the subject hooks one arm through the partner's arm at the elbow and the two walk forward in step together, shoulders close, arms linked the whole way",
88
- term: "walks arm in arm with the partner", twoPerson: true },
89
- { id: "lead-partner-by-hand", label: "Lead by the Hand", category: "two-person", description: "Walks ahead pulling the partner along by the hand",
90
- promptHint: "the subject takes the partner's hand and walks ahead, arm stretched back, pulling the partner along a half step behind as the two move forward together",
91
- term: "leads the partner by the hand", twoPerson: true },
92
- { id: "bump-shoulders-walking", label: "Shoulder Bump", category: "two-person", description: "Playful sideways nudge while walking together",
93
- promptHint: "the subject walks beside the partner and leans sideways to knock shoulders with the partner in a playful nudge, both rocking apart and settling back into stride",
94
- term: "bumps shoulders with the partner while walking", twoPerson: true },
95
- { id: "sit-down-together", label: "Sit Down Together", category: "two-person", description: "Both sit down side by side, shoulder to shoulder",
96
- promptHint: "the subject sits down on a seat and the partner sits down beside the subject, both settling shoulder to shoulder and facing the same direction",
97
- term: "sits down beside the partner", twoPerson: true },
98
- { id: "pull-out-chair-for-partner", label: "Pull Out Chair", category: "two-person", description: "Draws a chair out and slides it in as the partner sits",
99
- promptHint: "the subject steps to a chair, grips its back and draws it out from the table, and slides it back in under the partner as the partner sits down",
100
- term: "pulls out a chair for the partner", twoPerson: true },
101
- { id: "hold-door-for-partner", label: "Hold the Door", category: "two-person", description: "Opens a door and holds it as the partner walks through",
102
- promptHint: "the subject reaches the door first, pulls it open and steps aside holding it with one arm extended, and the partner walks through ahead of the subject",
103
- term: "holds the door for the partner", twoPerson: true },
104
- { id: "drape-jacket-over-partner", label: "Drape Jacket", category: "two-person", description: "Shrugs off a jacket and drapes it over the partner",
105
- promptHint: "the subject shrugs off a jacket, holds it open by the shoulders and drapes it over the partner's shoulders from behind, smoothing it down the partner's arms",
106
- term: "drapes a jacket over the partner's shoulders", twoPerson: true },
107
- { id: "straighten-partner-tie", label: "Straighten Partner's Tie", category: "two-person", description: "Centers the partner's tie knot and smooths it flat",
108
- promptHint: "the subject steps in front of the partner, takes the knot of the partner's tie in both hands, centers it with a small tug and smooths the tie flat down the partner's chest",
109
- term: "straightens the partner's tie", twoPerson: true },
110
- { id: "feed-partner-a-bite", label: "Feed a Bite", category: "two-person", description: "Lifts a bite to the partner's mouth, hand cupped below",
111
- promptHint: "the subject lifts a bite of food toward the partner's mouth with one hand, the other hand cupped beneath to catch drips, and the partner leans in to take the bite",
112
- term: "feeds the partner a bite", twoPerson: true },
113
- { id: "hand-partner-object", label: "Hand Over Object", category: "two-person", description: "Holds out an object, the partner takes it",
114
- promptHint: "the subject holds out an object toward the partner with one hand, the partner reaches to take it, and the subject lets go once the partner's grip is on it",
115
- term: "hands the partner an object", twoPerson: true },
116
- { id: "receive-object", label: "Receive Object", category: "two-person", description: "Takes an offered object and draws it in",
117
- promptHint: "the subject reaches out with an open hand as the partner offers an object, closes the fingers around it and draws it back in toward the body",
118
- term: "takes an object from the partner", twoPerson: true },
119
- { id: "slide-ring-onto-partner-finger", label: "Slide On Ring", category: "two-person", description: "Slides a ring down onto the partner's ring finger",
120
- promptHint: "the subject takes the partner's hand, holds a ring at the fingertip and slides it down onto the partner's ring finger, then closes both hands around the partner's hand",
121
- term: "slides a ring onto the partner's finger", twoPerson: true },
122
- { id: "lift-partner-veil", label: "Lift Veil", category: "two-person", description: "Lifts the veil up and back to reveal the face",
123
- promptHint: "the subject raises both hands to the edge of the partner's veil, lifts it up and back over the partner's head, and lowers the hands to reveal the partner's face",
124
- term: "lifts the partner's veil", twoPerson: true },
125
- { id: "kneel-before-partner", label: "Kneel Before", category: "two-person", description: "Drops to one knee and takes the partner's hand",
126
- promptHint: "the subject drops down onto one knee in front of the partner, takes the partner's hand in both hands and looks up at the partner's face, the partner's free hand rising to the mouth",
127
- term: "kneels on one knee before the partner", twoPerson: true },
128
- { id: "kneel-to-partner-eye-level", label: "Kneel to Eye Level", category: "two-person", description: "Lowers to one knee to meet a shorter partner's eyes",
129
- promptHint: "the subject lowers onto one knee in front of the partner until their eyes are level, hands resting on the raised knee, and speaks to the partner face to face",
130
- term: "kneels to the partner's eye level", twoPerson: true },
131
- { id: "tap-partner-shoulder", label: "Tap on Shoulder", category: "two-person", description: "Two taps from behind, the partner turns around",
132
- promptHint: "the subject steps up behind the partner, raises one hand and taps the partner's shoulder twice with the fingertips, and the partner turns around to face the subject",
133
- term: "taps the partner on the shoulder", twoPerson: true },
134
- { id: "put-hand-on-partner-shoulder", label: "Hand on Shoulder", category: "two-person", description: "Rests a hand on the partner's shoulder with a squeeze",
135
- promptHint: "the subject steps to the partner's side, raises one hand and rests it on the partner's shoulder with a firm squeeze, holding it there while looking at the partner",
136
- term: "places a hand on the partner's shoulder", twoPerson: true },
137
- { id: "pat-partner-back", label: "Pat on the Back", category: "two-person", description: "Open-palm pats on the partner's upper back",
138
- promptHint: "the subject reaches over and pats the partner firmly on the upper back three times with an open palm, before dropping the hand",
139
- term: "pats the partner on the back", twoPerson: true },
140
- { id: "whisper-to-partner", label: "Whisper", category: "two-person", description: "Leans in and whispers into the partner's ear",
141
- promptHint: "the subject leans in close to the side of the partner's head, cups a hand beside the mouth and whispers into the partner's ear, and the partner's expression shifts while listening",
142
- term: "whispers in the partner's ear", twoPerson: true },
143
- { id: "cover-partner-eyes-from-behind", label: "Cover Eyes", category: "two-person", description: "Sneaks up behind and covers the partner's eyes",
144
- promptHint: "the subject creeps up behind the partner, reaches around with both hands and covers the partner's eyes with the palms, the partner's hands rising to touch the subject's fingers",
145
- term: "covers the partner's eyes from behind", twoPerson: true },
146
- { id: "boop-partner-nose", label: "Boop Nose", category: "two-person", description: "Index finger taps the tip of the partner's nose",
147
- promptHint: "the subject raises one hand with the index finger extended and taps the tip of the partner's nose with a light press, then pulls the hand back as the partner scrunches the face",
148
- term: "boops the partner's nose", twoPerson: true },
149
- { id: "ruffle-partner-hair", label: "Ruffle Hair", category: "two-person", description: "Rubs a hand across the partner's head, messing the hair",
150
- promptHint: "the subject reaches over and rubs an open hand back and forth across the top of the partner's head, ruffling the partner's hair into disarray, and pulls the hand away",
151
- term: "ruffles the partner's hair", twoPerson: true },
152
- { id: "tickle-partner", label: "Tickle", category: "two-person", description: "Fingers wiggle at the ribs, the partner twists away",
153
- promptHint: "the subject reaches for the partner's sides with both hands and wiggles the fingers against the partner's ribs, the partner doubling over and twisting away laughing",
154
- term: "tickles the partner", twoPerson: true },
155
- { id: "shake-partner-awake", label: "Shake Awake", category: "two-person", description: "Grips and shakes a sleeping partner's shoulder",
156
- promptHint: "the subject leans over the partner lying asleep, grips the partner's shoulder and shakes it insistently until the partner's eyes open and the partner jolts upright",
157
- term: "shakes the partner awake", twoPerson: true },
158
- { id: "lift-partner", label: "Lift", category: "two-person", description: "Hands at the waist, lifts straight up, sets down",
159
- promptHint: "the subject grips the partner at the waist with both hands, bends the knees and lifts the partner straight up off the ground, the partner's hands on the subject's shoulders, and lowers the partner back down",
160
- term: "lifts the partner off the ground", twoPerson: true },
161
- { id: "swing-partner-around", label: "Swing Around", category: "two-person", description: "Lifts the partner and turns a full circle",
162
- promptHint: "the subject wraps both arms around the partner's waist, lifts the partner off the ground and turns in a full circle with the partner's feet swinging outward, before setting the partner down",
163
- term: "lifts and swings the partner around", twoPerson: true },
164
- { id: "lift-partner-overhead-airplane", label: "Airplane Lift", category: "two-person", description: "Lifts a small partner overhead, held flat, arms wide",
165
- promptHint: "the subject grips the partner under the arms, lifts the partner overhead at full arm extension so the partner's body lies flat with arms spread wide, and lowers the partner back down",
166
- term: "lifts the partner overhead like an airplane", twoPerson: true },
167
- { id: "carry-partner-bridal", label: "Bridal Carry", category: "two-person", description: "Scoops the partner up and walks forward",
168
- promptHint: "the subject scoops the partner up in a bridal carry, one arm under the partner's knees and the other behind the partner's back, the partner's arm around the subject's neck, and walks forward carrying the partner",
169
- term: "carries the partner bridal-style", twoPerson: true },
170
- { id: "piggyback-partner", label: "Piggyback", category: "two-person", description: "Crouches, the partner climbs on, stands and walks",
171
- promptHint: "the subject crouches, the partner climbs onto the subject's back with arms around the subject's shoulders, and the subject hooks both hands under the partner's knees, stands up and walks forward",
172
- term: "carries the partner piggyback", twoPerson: true },
173
- { id: "carry-partner-on-shoulders", label: "Shoulder Ride", category: "two-person", description: "The partner rides astride the neck, carried forward",
174
- promptHint: "the subject crouches, the partner climbs onto the subject's shoulders with one leg either side of the neck, and the subject holds the partner's shins and stands up to walk forward",
175
- term: "carries the partner on the shoulders", twoPerson: true },
176
- { id: "fireman-carry-partner", label: "Fireman Carry", category: "two-person", description: "Hoists the partner across the shoulders and walks",
177
- promptHint: "the subject ducks under the partner's arm, hoists the partner across the shoulders with the partner's torso behind the neck and legs hanging in front, and stands to walk forward",
178
- term: "carries the partner over one shoulder", twoPerson: true },
179
- { id: "help-partner-up", label: "Help Up", category: "two-person", description: "Pulls the partner up from the ground to standing",
180
- promptHint: "the subject extends a hand down to the partner on the ground, the partner grips the subject's forearm, and the subject leans back and pulls the partner up to standing",
181
- term: "helps the partner up", twoPerson: true },
182
- { id: "catch-partner-falling", label: "Catch a Fall", category: "two-person", description: "Lunges and catches the partner as they fall",
183
- promptHint: "the subject lunges forward as the partner loses balance and falls, catching the partner under the arms and around the back, taking the partner's weight and steadying the partner upright",
184
- term: "catches the partner mid-fall", twoPerson: true },
185
- { id: "support-injured-partner-walking", label: "Support Limping", category: "two-person", description: "Takes a limping partner's weight, arm over shoulder",
186
- promptHint: "the subject drapes the partner's arm over the subject's shoulders, wraps an arm around the partner's waist and takes the partner's weight as the partner limps, the two walking forward in a lurching step",
187
- term: "helps the partner limp along", twoPerson: true },
188
- { id: "drag-partner-to-safety", label: "Drag to Safety", category: "two-person", description: "Hauls the partner backward under the arms",
189
- promptHint: "the subject hooks both hands under the partner's arms from behind and drags the partner backward across the ground, the partner's heels trailing, the subject leaning back and hauling step by step",
190
- term: "drags the partner to safety", twoPerson: true },
191
- { id: "shield-partner-with-body", label: "Shield", category: "two-person", description: "Pulls the partner behind and blocks with the body",
192
- promptHint: "the subject grabs the partner's arm, swings the partner around behind the subject's back and plants the feet wide, one arm held out across the partner as a shield",
193
- term: "shields the partner with the body", twoPerson: true },
194
- { id: "pull-partner-close", label: "Pull Close", category: "two-person", description: "Draws the partner in until chest to chest",
195
- promptHint: "the subject grasps the partner's hand and pulls the partner in until the two are chest to chest, the partner's body turning to face the subject as the gap closes",
196
- term: "pulls the partner close", adultOnly: true, twoPerson: true },
197
- { id: "catch-partner-wrist", label: "Catch Wrist", category: "two-person", description: "Stops the partner leaving by catching the wrist",
198
- promptHint: "the subject reaches out as the partner turns to walk away and catches the partner's wrist, halting the partner mid-step so the partner turns back to face the subject",
199
- term: "catches the partner's wrist", twoPerson: true },
200
- { id: "chase-partner", label: "Chase", category: "two-person", description: "Runs after the partner, closing the gap",
201
- promptHint: "the subject runs after the partner, who sprints ahead across the frame glancing back, the subject pumping the arms and closing the gap stride by stride",
202
- term: "chases the partner", twoPerson: true },
203
- { id: "stare-down-partner", label: "Stare Down Partner", category: "two-person", description: "Face to face, inches apart, unbroken stare",
204
- promptHint: "the subject steps in to stand face to face with the partner, inches apart, and holds an unbroken stare into the partner's eyes, neither of them moving",
205
- term: "stares down the partner face to face", twoPerson: true },
206
- { id: "argue-in-partner-face", label: "Argue in Face", category: "two-person", description: "Nose to nose, jabbing a finger, both shouting",
207
- promptHint: "the subject steps in nose to nose with the partner, jabbing a finger at the partner's chest and shouting, the partner shouting back, neither giving ground",
208
- term: "argues in the partner's face", twoPerson: true },
209
- { id: "push-partner-away", label: "Push Away", category: "two-person", description: "Both palms to the chest, the partner steps back",
210
- promptHint: "the subject plants both palms on the partner's chest and pushes the partner away, the partner stepping back to absorb it, while the subject holds the arms out to keep the distance",
211
- term: "pushes the partner away", twoPerson: true },
212
- { id: "shove-partner", label: "Shove Partner", category: "two-person", description: "Two-handed shove, the partner staggers back",
213
- promptHint: "the subject lunges forward and shoves the partner hard in the shoulders with both hands, the partner staggering back several steps and catching balance while the subject squares up",
214
- term: "shoves the partner back", twoPerson: true },
215
- { id: "shake-partner-shoulders", label: "Shake by Shoulders", category: "two-person", description: "Grabs both shoulders and shakes back and forth",
216
- promptHint: "the subject grabs the partner by both shoulders and shakes the partner back and forth, the partner's head rocking with each shake, before releasing the grip",
217
- term: "grabs and shakes the partner by the shoulders", twoPerson: true },
218
- { id: "grab-partner-collar", label: "Grab Collar", category: "two-person", description: "Seizes the collar in both fists and yanks in close",
219
- promptHint: "the subject seizes the partner's collar with both fists and yanks the partner in close, the partner's heels lifting as the subject holds the partner up at eye level",
220
- term: "grabs the partner by the collar", twoPerson: true },
221
- { id: "pin-partner-against-wall", label: "Pin Against Wall", category: "two-person", description: "Backs the partner into the wall, forearm across chest",
222
- promptHint: "the subject drives the partner back until the partner's shoulders meet the wall, plants one forearm across the partner's chest and the other palm flat on the wall beside the partner's head",
223
- term: "pins the partner against the wall", twoPerson: true },
224
- { id: "slap-partner", label: "Slap", category: "two-person", description: "Open hand across the cheek, the head snaps aside",
225
- promptHint: "the subject swings one open hand across the partner's cheek in a sharp slap, the partner's head snapping to the side, and the subject lowers the hand",
226
- term: "slaps the partner across the face", twoPerson: true },
227
- { id: "arm-wrestle-partner", label: "Arm Wrestle", category: "two-person", description: "Elbows planted, hands locked, straining to win",
228
- promptHint: "the subject plants an elbow on the table, locks hands with the partner and strains to force the partner's arm down, both arms trembling as the clasped hands tip toward the subject's side",
229
- term: "arm wrestles the partner", twoPerson: true },
230
- { id: "restrain-partner", label: "Restrain", category: "two-person", description: "Hauls the straining partner back from behind",
231
- promptHint: "the subject wraps both arms around the partner from behind and hauls the partner back as the partner strains forward, the partner's feet scrabbling, the subject planting the feet and pulling the partner away",
232
- term: "holds the partner back from behind", twoPerson: true },
5
+ { "id": "hug-partner", "label": "Hug", "category": "two-person", "description": "Steps in, wraps arms around the partner, releases",
6
+ "promptHint": "the subject steps toward the partner, opens both arms and wraps them around the partner's back in a firm hug, holds the hug, and loosens the arms to step back", "term": "hugs the partner",
7
+ "twoPerson": true, "handsAfter": "free", "requires": ["partner"] },
8
+ { "id": "embrace-partner", "label": "Long embrace", "category": "two-person", "description": "Full hold, chin on shoulder, swaying, no release",
9
+ "promptHint": "the subject draws the partner into a full embrace, arms wrapped around the partner's back, chin resting on the partner's shoulder, both bodies swaying side to side as the hold continues without releasing", "term": "holds the partner in a long embrace",
10
+ "twoPerson": true, "requires": ["partner"] },
11
+ { "id": "hug-partner-from-behind", "label": "Hug from behind", "category": "two-person", "description": "Arms around the waist, chin on the shoulder",
12
+ "promptHint": "the subject walks up behind the partner, slides both arms around the partner's waist and rests the chin on the partner's shoulder, the partner leaning back into the hold", "term": "hugs the partner from behind",
13
+ "twoPerson": true, "handsAfter": "holding-partner", "requires": ["partner"] },
14
+ { "id": "bro-hug", "label": "Bro hug", "category": "two-person", "description": "Handshake pulled into a one-arm hug with a pat",
15
+ "promptHint": "the subject clasps the partner's hand in a handshake, pulls the partner in by that hand and wraps the free arm around the partner's back with a pat, then releases and steps back", "term": "pulls the partner into a one-arm hug",
16
+ "twoPerson": true, "requires": ["partner"] },
17
+ { "id": "run-into-partner-arms", "label": "Run into arms", "category": "two-person", "description": "Runs, leaps, and is caught in a lifted hug",
18
+ "promptHint": "the subject runs toward the partner, leaps in the final stride and wraps arms around the partner's neck, and the partner catches the subject and holds the lifted hug", "term": "runs and leaps into the partner's arms",
19
+ "twoPerson": true, "requires": ["partner"] },
20
+ { "id": "bury-face-in-partner-shoulder", "label": "Bury face in partner’s shoulder", "category": "two-person", "description": "Face pressed into the partner's shoulder, gripping",
21
+ "promptHint": "the subject steps into the partner and buries the face against the partner's shoulder, shoulders heaving, hands gripping the back of the partner's clothing as the partner's arms close around", "term": "buries face in the partner's shoulder",
22
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Bury Face"] },
23
+ { "id": "shake-partner-hand", "label": "Handshake", "category": "two-person", "description": "Extends a hand, grips and pumps twice, lets go",
24
+ "promptHint": "the subject extends the right hand toward the partner, the partner grips it, and the two pump the clasped hands up and down twice before letting go and dropping the arms", "term": "shakes hands with the partner",
25
+ "twoPerson": true, "requires": ["partner"] },
26
+ { "id": "high-five-partner", "label": "High five", "category": "two-person", "description": "Raised open palms slap together and rebound",
27
+ "promptHint": "the subject raises an open hand above shoulder height and swings it forward to slap palms with the partner's raised hand in a crisp high five, both hands rebounding after contact", "term": "high-fives the partner",
28
+ "twoPerson": true, "requires": ["partner"] },
29
+ { "id": "fist-bump-partner", "label": "Fist bump", "category": "two-person", "description": "Knuckles meet at chest height with a light tap",
30
+ "promptHint": "the subject makes a fist and extends it forward at chest height, the partner's fist meets it knuckle to knuckle with a light tap, and both fists pull back", "term": "fist-bumps the partner",
31
+ "twoPerson": true, "requires": ["partner"] },
32
+ { "id": "chest-bump-partner", "label": "Chest bump", "category": "two-person", "description": "Both hop in and bump chests mid-air",
33
+ "promptHint": "the subject hops toward the partner with the chest thrust forward, the partner hopping to meet it, the two bumping chest to chest in mid-air and landing back on their feet", "term": "chest bumps the partner",
34
+ "twoPerson": true, "requires": ["partner"] },
35
+ { "id": "pinky-promise", "label": "Pinky promise", "category": "two-person", "description": "Little fingers hook and shake once",
36
+ "promptHint": "the subject raises one hand with the little finger extended, the partner hooks a little finger around it, and the two shake the linked fingers up and down once", "term": "hooks pinkies with the partner",
37
+ "twoPerson": true, "requires": ["partner"] },
38
+ { "id": "bow-to-partner", "label": "Bow to partner", "category": "two-person", "description": "Bends from the waist, the partner returns the bow",
39
+ "promptHint": "the subject faces the partner, brings the feet together and bends forward from the waist in a respectful bow, holds it, and straightens as the partner returns the bow", "term": "bows to the partner",
40
+ "twoPerson": true, "requires": ["partner"] },
41
+ { "id": "toast-with-partner", "label": "Toast", "category": "two-person", "description": "Glasses raised and clinked, then a drink",
42
+ "promptHint": "the subject raises a glass toward the partner, the partner lifts a glass to meet it, and the two glasses clink at chest height before each pulls the glass back to drink", "term": "clinks glasses with the partner",
43
+ "twoPerson": true, "requires": ["partner"] },
44
+ { "id": "kiss-partner-cheek", "label": "Kiss on the cheek", "category": "two-person", "description": "Leans in, kisses the partner's cheek, leans back",
45
+ "promptHint": "the subject leans in toward the partner, tilts the head slightly, presses a kiss to the partner's cheek, and leans back upright", "term": "kisses the partner on the cheek",
46
+ "twoPerson": true, "requires": ["partner"] },
47
+ { "id": "kiss-partner-forehead", "label": "Forehead kiss", "category": "two-person", "description": "Tilts the partner's head down, kisses the forehead",
48
+ "promptHint": "the subject draws the partner in, tilts the partner's head down slightly with one hand and presses a kiss to the partner's forehead, then leans back", "term": "kisses the partner's forehead",
49
+ "twoPerson": true, "requires": ["partner"] },
50
+ { "id": "lean-in-almost-kiss", "label": "Almost kiss", "category": "two-person", "description": "Leans in until lips nearly touch, and holds there",
51
+ "promptHint": "the subject leans in toward the partner until the lips are a breath apart, eyes dropping to the partner's mouth, and holds there without closing the last inch", "term": "almost kisses the partner",
52
+ "adultOnly": true, "twoPerson": true, "requires": ["partner"] },
53
+ { "id": "kiss-partner", "label": "Kiss", "category": "two-person", "description": "Leans in, kisses the partner on the lips, parts",
54
+ "promptHint": "the subject leans in toward the partner, tilts the head and presses the lips to the partner's lips in a kiss, eyes closing, then eases back until the two part", "term": "kisses the partner",
55
+ "adultOnly": true, "twoPerson": true, "requires": ["partner"] },
56
+ { "id": "rise-on-tiptoes-to-kiss-partner", "label": "Tiptoe kiss", "category": "two-person", "description": "Rises on tiptoes to reach a taller partner's lips",
57
+ "promptHint": "the subject rises onto tiptoes in front of the partner, hands on the partner's shoulders for balance, and presses a kiss up to the partner's lips before settling back onto flat feet", "term": "rises on tiptoes to kiss the partner",
58
+ "adultOnly": true, "twoPerson": true, "requires": ["partner"] },
59
+ { "id": "cup-partner-face", "label": "Cup partner’s face", "category": "two-person", "description": "Both palms cup the partner's cheeks, holding the gaze",
60
+ "promptHint": "the subject raises both hands to the partner's face and cups the cheeks in the palms, thumbs resting below the partner's eyes, holding the partner's gaze", "term": "cups the partner's face",
61
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Cup Face"] },
62
+ { "id": "lift-partner-chin", "label": "Lift partner’s chin", "category": "two-person", "description": "A curled finger tilts the partner's lowered face up",
63
+ "promptHint": "the subject slides one curled finger under the partner's chin and lifts it until the partner's lowered face tilts up to meet the subject's eyes", "term": "lifts the partner's chin",
64
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Lift Chin"] },
65
+ { "id": "tuck-partner-hair-behind-ear", "label": "Tuck partner's hair back", "category": "two-person", "description": "Catches a loose strand and tucks it behind the ear",
66
+ "promptHint": "the subject reaches up with one hand, catches a loose strand of the partner's hair with the fingertips and tucks it back behind the partner's ear, the hand lingering at the temple", "term": "tucks the partner's hair behind the ear",
67
+ "twoPerson": true, "requires": ["partner"] },
68
+ { "id": "wipe-partner-tear", "label": "Wipe away a tear", "category": "two-person", "description": "Thumb brushes a tear from the partner's cheek",
69
+ "promptHint": "the subject raises one hand to the partner's face and brushes a tear from the partner's cheek with the thumb, the palm resting against the partner's jaw as the partner looks up", "term": "wipes a tear from the partner's cheek",
70
+ "twoPerson": true, "requires": ["partner"] },
71
+ { "id": "touch-foreheads-with-partner", "label": "Forehead touch", "category": "two-person", "description": "Foreheads rest together, eyes closed, holding still",
72
+ "promptHint": "the subject leans in until the foreheads rest together, both closing their eyes, the subject's hands on the partner's shoulders, the two holding still together", "term": "touches foreheads with the partner",
73
+ "twoPerson": true, "requires": ["partner"] },
74
+ { "id": "rest-head-on-partner-shoulder", "label": "Rest head on partner’s shoulder", "category": "two-person", "description": "Leans sideways, head settling on the partner's shoulder",
75
+ "promptHint": "the subject leans sideways toward the partner and lowers the head until it rests on the partner's shoulder, eyes closing, the partner's cheek settling against the top of the subject's head", "term": "rests head on the partner's shoulder",
76
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Head on Shoulder"] },
77
+ { "id": "rest-head-in-partner-lap", "label": "Head in lap", "category": "two-person", "description": "Lies down and rests the head in the partner's lap",
78
+ "promptHint": "the subject lies down sideways along a seat and lowers the head to rest in the partner's lap, face turned upward, the partner's hand settling on the subject's hair", "term": "rests head in the partner's lap",
79
+ "twoPerson": true, "requires": ["partner"] },
80
+ { "id": "hold-partner-hand", "label": "Hold hands", "category": "two-person", "description": "Finds the partner's hand and laces fingers",
81
+ "promptHint": "the subject reaches sideways, finds the partner's hand and laces the fingers together, the joined hands settling between them as the two stand side by side", "term": "holds hands with the partner",
82
+ "twoPerson": true, "requires": ["partner"] },
83
+ { "id": "walk-hand-in-hand", "label": "Walk hand in hand", "category": "two-person", "description": "Walks beside the partner with hands clasped",
84
+ "promptHint": "the subject walks forward beside the partner with their hands clasped between them, the joined arms swinging lightly with each matched step", "term": "walks hand in hand with the partner",
85
+ "twoPerson": true, "requires": ["partner"] },
86
+ { "id": "walk-arm-in-arm", "label": "Walk arm in arm", "category": "two-person", "description": "Arms linked at the elbow, walking in step",
87
+ "promptHint": "the subject hooks one arm through the partner's arm at the elbow and the two walk forward in step together, shoulders close, arms linked the whole way", "term": "walks arm in arm with the partner",
88
+ "twoPerson": true, "requires": ["partner"] },
89
+ { "id": "lead-partner-by-hand", "label": "Lead by the hand", "category": "two-person", "description": "Walks ahead pulling the partner along by the hand",
90
+ "promptHint": "the subject takes the partner's hand and walks ahead, arm stretched back, pulling the partner along a half step behind as the two move forward together", "term": "leads the partner by the hand",
91
+ "twoPerson": true, "requires": ["partner"] },
92
+ { "id": "bump-shoulders-walking", "label": "Shoulder bump", "category": "two-person", "description": "Playful sideways nudge while walking together",
93
+ "promptHint": "the subject walks beside the partner and leans sideways to knock shoulders with the partner in a playful nudge, both rocking apart and settling back into stride", "term": "bumps shoulders with the partner while walking",
94
+ "twoPerson": true, "requires": ["partner"] },
95
+ { "id": "sit-down-together", "label": "Sit down together", "category": "two-person", "description": "Both sit down side by side, shoulder to shoulder",
96
+ "promptHint": "the subject sits down on a seat and the partner sits down beside the subject, both settling shoulder to shoulder and facing the same direction", "term": "sits down beside the partner",
97
+ "twoPerson": true, "requires": ["partner"] },
98
+ { "id": "pull-out-chair-for-partner", "label": "Pull out chair", "category": "two-person", "description": "Draws a chair out and slides it in as the partner sits",
99
+ "promptHint": "the subject steps to a chair, grips its back and draws it out from the table, and slides it back in under the partner as the partner sits down", "term": "pulls out a chair for the partner",
100
+ "twoPerson": true, "requires": ["partner"] },
101
+ { "id": "hold-door-for-partner", "label": "Hold the door", "category": "two-person", "description": "Opens a door and holds it as the partner walks through",
102
+ "promptHint": "the subject reaches the door first, pulls it open and steps aside holding it with one arm extended, and the partner walks through ahead of the subject", "term": "holds the door for the partner",
103
+ "twoPerson": true, "requires": ["partner"] },
104
+ { "id": "drape-jacket-over-partner", "label": "Drape jacket", "category": "two-person", "description": "Shrugs off a jacket and drapes it over the partner",
105
+ "promptHint": "the subject shrugs off a jacket, holds it open by the shoulders and drapes it over the partner's shoulders from behind, smoothing it down the partner's arms", "term": "drapes a jacket over the partner's shoulders",
106
+ "twoPerson": true, "requires": ["partner"] },
107
+ { "id": "straighten-partner-tie", "label": "Straighten partner's tie", "category": "two-person", "description": "Centers the partner's tie knot and smooths it flat",
108
+ "promptHint": "the subject steps in front of the partner, takes the knot of the partner's tie in both hands, centers it with a small tug and smooths the tie flat down the partner's chest", "term": "straightens the partner's tie",
109
+ "twoPerson": true, "requires": ["partner"] },
110
+ { "id": "feed-partner-a-bite", "label": "Feed a bite", "category": "two-person", "description": "Lifts a bite to the partner's mouth, hand cupped below",
111
+ "promptHint": "the subject lifts a bite of food toward the partner's mouth with one hand, the other hand cupped beneath to catch drips, and the partner leans in to take the bite", "term": "feeds the partner a bite",
112
+ "twoPerson": true, "requires": ["partner"] },
113
+ { "id": "hand-partner-object", "label": "Hand over object", "category": "two-person", "description": "Holds out an object, the partner takes it",
114
+ "promptHint": "the subject holds out an object toward the partner with one hand, the partner reaches to take it, and the subject lets go once the partner's grip is on it", "term": "hands the partner an object",
115
+ "twoPerson": true, "requires": ["partner"] },
116
+ { "id": "receive-object", "label": "Receive object", "category": "two-person", "description": "Takes an offered object and draws it in",
117
+ "promptHint": "the subject reaches out with an open hand as the partner offers an object, closes the fingers around it and draws it back in toward the body", "term": "takes an object from the partner",
118
+ "twoPerson": true, "requires": ["partner"] },
119
+ { "id": "slide-ring-onto-partner-finger", "label": "Slide on ring", "category": "two-person", "description": "Slides a ring down onto the partner's ring finger",
120
+ "promptHint": "the subject takes the partner's hand, holds a ring at the fingertip and slides it down onto the partner's ring finger, then closes both hands around the partner's hand", "term": "slides a ring onto the partner's finger",
121
+ "twoPerson": true, "requires": ["partner"] },
122
+ { "id": "lift-partner-veil", "label": "Lift veil", "category": "two-person", "description": "Lifts the veil up and back to reveal the face",
123
+ "promptHint": "the subject raises both hands to the edge of the partner's veil, lifts it up and back over the partner's head, and lowers the hands to reveal the partner's face", "term": "lifts the partner's veil",
124
+ "twoPerson": true, "requires": ["partner"] },
125
+ { "id": "kneel-before-partner", "label": "Kneel before partner", "category": "two-person", "description": "Lowers onto one knee facing the partner.",
126
+ "promptHint": "the subject faces the partner and lowers onto one knee, keeping the torso upright without prescribing the partner’s reaction", "term": "kneels on one knee before the partner",
127
+ "twoPerson": true, "startPose": "standing", "endPose": "floor", "requires": ["partner"], "aliases": ["Kneel Before"] },
128
+ { "id": "kneel-to-partner-eye-level", "label": "Kneel to eye level", "category": "two-person", "description": "Lowers to one knee to meet a shorter partner's eyes",
129
+ "promptHint": "the subject lowers onto one knee in front of the partner until their eyes are level, hands resting on the raised knee, and speaks to the partner face to face", "term": "kneels to the partner's eye level",
130
+ "twoPerson": true, "requires": ["partner"] },
131
+ { "id": "tap-partner-shoulder", "label": "Tap on shoulder", "category": "two-person", "description": "Two taps from behind, the partner turns around",
132
+ "promptHint": "the subject steps up behind the partner, raises one hand and taps the partner's shoulder twice with the fingertips, and the partner turns around to face the subject", "term": "taps the partner on the shoulder",
133
+ "twoPerson": true, "requires": ["partner"] },
134
+ { "id": "put-hand-on-partner-shoulder", "label": "Hand on shoulder", "category": "two-person", "description": "Rests a hand on the partner's shoulder with a squeeze",
135
+ "promptHint": "the subject steps to the partner's side, raises one hand and rests it on the partner's shoulder with a firm squeeze, holding it there while looking at the partner", "term": "places a hand on the partner's shoulder",
136
+ "twoPerson": true, "requires": ["partner"] },
137
+ { "id": "pat-partner-back", "label": "Pat on the back", "category": "two-person", "description": "Open-palm pats on the partner's upper back",
138
+ "promptHint": "the subject reaches over and pats the partner firmly on the upper back three times with an open palm, before dropping the hand", "term": "pats the partner on the back",
139
+ "twoPerson": true, "requires": ["partner"] },
140
+ { "id": "whisper-to-partner", "label": "Whisper", "category": "two-person", "description": "Leans in and whispers into the partner's ear",
141
+ "promptHint": "the subject leans in close to the side of the partner's head, cups a hand beside the mouth and whispers into the partner's ear, and the partner's expression shifts while listening", "term": "whispers in the partner's ear",
142
+ "twoPerson": true, "requires": ["partner"] },
143
+ { "id": "cover-partner-eyes-from-behind", "label": "Cover eyes", "category": "two-person", "description": "Sneaks up behind and covers the partner's eyes",
144
+ "promptHint": "the subject creeps up behind the partner, reaches around with both hands and covers the partner's eyes with the palms, the partner's hands rising to touch the subject's fingers", "term": "covers the partner's eyes from behind",
145
+ "twoPerson": true, "requires": ["partner"] },
146
+ { "id": "boop-partner-nose", "label": "Boop nose", "category": "two-person", "description": "Index finger taps the tip of the partner's nose",
147
+ "promptHint": "the subject raises one hand with the index finger extended and taps the tip of the partner's nose with a light press, then pulls the hand back as the partner scrunches the face", "term": "boops the partner's nose",
148
+ "twoPerson": true, "requires": ["partner"] },
149
+ { "id": "ruffle-partner-hair", "label": "Ruffle hair", "category": "two-person", "description": "Rubs a hand across the partner's head, messing the hair",
150
+ "promptHint": "the subject reaches over and rubs an open hand back and forth across the top of the partner's head, ruffling the partner's hair into disarray, and pulls the hand away", "term": "ruffles the partner's hair",
151
+ "twoPerson": true, "requires": ["partner"] },
152
+ { "id": "tickle-partner", "label": "Tickle", "category": "two-person", "description": "Fingers wiggle at the ribs, the partner twists away",
153
+ "promptHint": "the subject reaches for the partner's sides with both hands and wiggles the fingers against the partner's ribs, the partner doubling over and twisting away laughing", "term": "tickles the partner",
154
+ "twoPerson": true, "requires": ["partner"] },
155
+ { "id": "shake-partner-awake", "label": "Shake awake", "category": "two-person", "description": "Grips and shakes a sleeping partner's shoulder",
156
+ "promptHint": "the subject leans over the partner lying asleep, grips the partner's shoulder and shakes it insistently until the partner's eyes open and the partner jolts upright", "term": "shakes the partner awake",
157
+ "twoPerson": true, "requires": ["partner"] },
158
+ { "id": "lift-partner", "label": "Lift partner", "category": "two-person", "description": "Hands at the waist, lifts straight up, sets down",
159
+ "promptHint": "the subject grips the partner at the waist with both hands, bends the knees and lifts the partner straight up off the ground, the partner's hands on the subject's shoulders, and lowers the partner back down", "term": "lifts the partner off the ground",
160
+ "twoPerson": true, "requires": ["partner"], "handsAfter": "holding-partner", "startPose": "standing", "endPose": "standing", "aliases": ["Lift"] },
161
+ { "id": "swing-partner-around", "label": "Lift and spin partner", "category": "two-person", "description": "Lifts the partner and turns a full circle",
162
+ "promptHint": "the subject wraps both arms around the partner's waist, lifts the partner off the ground and turns in a full circle with the partner's feet swinging outward, before setting the partner down", "term": "lifts and swings the partner around",
163
+ "twoPerson": true, "requires": ["partner"], "handsAfter": "holding-partner", "startPose": "standing", "endPose": "standing", "aliases": ["Swing Around"] },
164
+ { "id": "lift-partner-overhead-airplane", "label": "Hold small partner overhead", "category": "two-person", "description": "Holds a smaller partner horizontally overhead with torso and pelvis supported.",
165
+ "promptHint": "the subject stands balanced with arms raised, holding the partner, a smaller person, horizontally overhead, one hand supporting the torso and the other supporting the pelvis", "term": "supports the partner (smaller) horizontally overhead",
166
+ "twoPerson": true, "startPose": "standing", "endPose": "standing", "handsAfter": "holding-partner", "requires": ["smaller partner already supported overhead", "partner"], "aliases": ["Airplane lift", "Airplane Lift"] },
167
+ { "id": "carry-partner-bridal", "label": "Bridal carry", "category": "two-person", "description": "Scoops the partner up and walks forward",
168
+ "promptHint": "the subject scoops the partner up in a bridal carry, one arm under the partner's knees and the other behind the partner's back, the partner's arm around the subject's neck, and walks forward carrying the partner", "term": "carries the partner bridal-style",
169
+ "twoPerson": true, "requires": ["partner"] },
170
+ { "id": "piggyback-partner", "label": "Piggyback", "category": "two-person", "description": "Crouches, the partner climbs on, stands and walks",
171
+ "promptHint": "the subject crouches, the partner climbs onto the subject's back with arms around the subject's shoulders, and the subject hooks both hands under the partner's knees, stands up and walks forward", "term": "carries the partner piggyback",
172
+ "twoPerson": true, "requires": ["partner"] },
173
+ { "id": "carry-partner-on-shoulders", "label": "Shoulder ride", "category": "two-person", "description": "The partner rides astride the neck, carried forward",
174
+ "promptHint": "the subject crouches, the partner climbs onto the subject's shoulders with one leg either side of the neck, and the subject holds the partner's shins and stands up to walk forward", "term": "carries the partner on the shoulders",
175
+ "twoPerson": true, "requires": ["partner"] },
176
+ { "id": "fireman-carry-partner", "label": "Carry partner across shoulders", "category": "two-person", "description": "Carries the partner supported across both shoulders.",
177
+ "promptHint": "the subject carries the partner across both shoulders, supporting the partner's upper body on one side and legs on the other, and walks forward with a steady stance", "term": "carries the partner across both shoulders",
178
+ "twoPerson": true, "requires": ["partner"], "handsAfter": "holding-partner", "startPose": "standing", "endPose": "standing", "aliases": ["Fireman Carry", "firefighter carry", "shoulder carry"] },
179
+ { "id": "help-partner-up", "label": "Help up", "category": "two-person", "description": "Pulls the partner up from the ground to standing",
180
+ "promptHint": "the subject extends a hand down to the partner on the ground, the partner grips the subject's forearm, and the subject leans back and pulls the partner up to standing", "term": "helps the partner up",
181
+ "twoPerson": true, "requires": ["partner"] },
182
+ { "id": "catch-partner-falling", "label": "Catch a fall", "category": "two-person", "description": "Lunges and catches the partner as they fall",
183
+ "promptHint": "the subject lunges forward as the partner loses balance and falls, catching the partner under the arms and around the back, taking the partner's weight and steadying the partner upright", "term": "catches the partner mid-fall",
184
+ "twoPerson": true, "requires": ["partner"] },
185
+ { "id": "support-injured-partner-walking", "label": "Support limping", "category": "two-person", "description": "Takes a limping partner's weight, arm over shoulder",
186
+ "promptHint": "the subject drapes the partner's arm over the subject's shoulders, wraps an arm around the partner's waist and takes the partner's weight as the partner limps, the two walking forward in a lurching step", "term": "helps the partner limp along",
187
+ "twoPerson": true, "requires": ["partner"] },
188
+ { "id": "drag-partner-to-safety", "label": "Drag to safety", "category": "two-person", "description": "Hauls the partner backward under the arms",
189
+ "promptHint": "the subject hooks both hands under the partner's arms from behind and drags the partner backward across the ground, the partner's heels trailing, the subject leaning back and hauling step by step", "term": "drags the partner to safety",
190
+ "twoPerson": true, "requires": ["partner"] },
191
+ { "id": "shield-partner-with-body", "label": "Shield partner with body", "category": "two-person", "description": "Pulls the partner behind and blocks with the body",
192
+ "promptHint": "the subject grabs the partner's arm, swings the partner around behind the subject's back and plants the feet wide, one arm held out across the partner as a shield", "term": "shields the partner with the body",
193
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Shield"] },
194
+ { "id": "pull-partner-close", "label": "Pull close", "category": "two-person", "description": "Draws the partner in until chest to chest",
195
+ "promptHint": "the subject grasps the partner's hand and pulls the partner in until the two are chest to chest, the partner's body turning to face the subject as the gap closes", "term": "pulls the partner close",
196
+ "twoPerson": true, "handsAfter": "holding-partner", "requires": ["partner"] },
197
+ { "id": "catch-partner-wrist", "label": "Catch wrist", "category": "two-person", "description": "Stops the partner leaving by catching the wrist",
198
+ "promptHint": "the subject reaches out as the partner turns to walk away and catches the partner's wrist, halting the partner mid-step so the partner turns back to face the subject", "term": "catches the partner's wrist",
199
+ "twoPerson": true, "requires": ["partner"] },
200
+ { "id": "chase-partner", "label": "Chase", "category": "two-person", "description": "Runs after the partner, closing the gap",
201
+ "promptHint": "the subject runs after the partner, who sprints ahead across the frame glancing back, the subject pumping the arms and closing the gap stride by stride", "term": "chases the partner",
202
+ "twoPerson": true, "requires": ["partner"] },
203
+ { "id": "stare-down-partner", "label": "Stare down partner", "category": "two-person", "description": "Face to face, inches apart, unbroken stare",
204
+ "promptHint": "the subject steps in to stand face to face with the partner, inches apart, and holds an unbroken stare into the partner's eyes, neither of them moving", "term": "stares down the partner face to face",
205
+ "twoPerson": true, "requires": ["partner"] },
206
+ { "id": "argue-in-partner-face", "label": "Argue in face", "category": "two-person", "description": "Nose to nose, jabbing a finger, both shouting",
207
+ "promptHint": "the subject steps in nose to nose with the partner, jabbing a finger at the partner's chest and shouting, the partner shouting back, neither giving ground", "term": "argues in the partner's face",
208
+ "twoPerson": true, "requires": ["partner"] },
209
+ { "id": "push-partner-away", "label": "Push away", "category": "two-person", "description": "Both palms to the chest, the partner steps back",
210
+ "promptHint": "the subject plants both palms on the partner's chest and pushes the partner away, the partner stepping back to absorb it, while the subject holds the arms out to keep the distance", "term": "pushes the partner away",
211
+ "twoPerson": true, "requires": ["partner"] },
212
+ { "id": "shove-partner", "label": "Shove partner", "category": "two-person", "description": "Two-handed shove, the partner staggers back",
213
+ "promptHint": "the subject lunges forward and shoves the partner hard in the shoulders with both hands, the partner staggering back several steps and catching balance while the subject squares up", "term": "shoves the partner back",
214
+ "twoPerson": true, "requires": ["partner"] },
215
+ { "id": "shake-partner-shoulders", "label": "Shake by shoulders", "category": "two-person", "description": "Grabs both shoulders and shakes back and forth",
216
+ "promptHint": "the subject grabs the partner by both shoulders and shakes the partner back and forth, the partner's head rocking with each shake, before releasing the grip", "term": "grabs and shakes the partner by the shoulders",
217
+ "twoPerson": true, "requires": ["partner"] },
218
+ { "id": "grab-partner-collar", "label": "Grab partner’s collar", "category": "two-person", "description": "Grips the collar while both people stay grounded.",
219
+ "promptHint": "the subject reaches forward and grips the partner’s collar, holding the fabric while both people keep their feet on the ground", "term": "grips the partner’s collar with both people grounded",
220
+ "twoPerson": true, "requires": ["partner wearing a collared garment", "partner"], "handsAfter": "holding-partner", "aliases": ["Grab Collar"] },
221
+ { "id": "pin-partner-against-wall", "label": "Pin against wall", "category": "two-person", "description": "Backs the partner into the wall, forearm across chest",
222
+ "promptHint": "the subject drives the partner back until the partner's shoulders meet the wall, plants one forearm across the partner's chest and the other palm flat on the wall beside the partner's head", "term": "pins the partner against the wall",
223
+ "twoPerson": true, "requires": ["partner"] },
224
+ { "id": "slap-partner", "label": "Slap", "category": "two-person", "description": "Open hand across the cheek, the head snaps aside",
225
+ "promptHint": "the subject swings one open hand across the partner's cheek in a sharp slap, the partner's head snapping to the side, and the subject lowers the hand", "term": "slaps the partner across the face",
226
+ "twoPerson": true, "requires": ["partner"] },
227
+ { "id": "arm-wrestle-partner", "label": "Arm wrestle partner", "category": "two-person", "description": "Contests a hand grip with both elbows planted on the table.",
228
+ "promptHint": "the subject clasps the partner’s hand with both elbows planted on a table; their joined hands tilt toward either side under alternating pressure, without prescribing a winner", "term": "arm wrestles the partner, elbows planted on table",
229
+ "twoPerson": true, "requires": ["table", "partner"], "handsAfter": "holding-partner", "aliases": ["Arm Wrestle"] },
230
+ { "id": "restrain-partner", "label": "Hold partner back", "category": "two-person", "description": "Hauls the straining partner back from behind",
231
+ "promptHint": "the subject wraps both arms around the partner from behind and hauls the partner back as the partner strains forward, the partner's feet scrabbling, the subject planting the feet and pulling the partner away", "term": "holds the partner back from behind",
232
+ "twoPerson": true, "requires": ["partner"], "aliases": ["Restrain"] },
233
+ { "id": "release-partner-and-step-back", "label": "Release partner and step back", "category": "two-person", "description": "Release partner and step back.",
234
+ "term": "releases the partner and steps back", "promptHint": "the subject releases the partner, lowers both hands and takes one step back",
235
+ "twoPerson": true, "requires": ["partner"], "handsAfter": "free", "endPose": "standing" },
236
+ { "id": "offer-object-and-wait", "label": "Offer object and wait", "category": "two-person", "description": "Offer object and wait.",
237
+ "term": "offers a held object to the partner, waiting", "promptHint": "the subject holds the object already in hand out toward the partner and waits without requiring acceptance",
238
+ "twoPerson": true, "requires": ["held object", "partner"], "handsAfter": "occupied" },
239
+ { "id": "decline-offered-object", "label": "Decline offered object", "category": "two-person", "description": "Decline offered object.",
240
+ "term": "declines an object offered by the partner", "promptHint": "the subject faces the partner and gently raises an open palm toward the offered object while leaving it with the partner",
241
+ "twoPerson": true, "requires": ["partner offering an object"], "needsFreeHands": true },
242
+ { "id": "pass-object-to-partner", "label": "Pass object to partner", "category": "two-person", "description": "Pass object to partner.",
243
+ "term": "passes a held object to the partner", "promptHint": "the subject extends the held object toward the partner, waits until the partner has a firm grip and then releases it",
244
+ "twoPerson": true, "requires": ["held object", "partner"], "handsAfter": "free", "kind": "compound" },
233
245
  ]