@omniharmonic/openspace-cli 0.0.0-stage → 0.1.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 (211) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +74 -2
  3. package/dist/agents-md-2DTXWUZQ.js +8 -0
  4. package/dist/agents-md-2DTXWUZQ.js.map +1 -0
  5. package/dist/agents-md-TX6V4M64.js +8 -0
  6. package/dist/agents-md-TX6V4M64.js.map +1 -0
  7. package/dist/bin.d.ts +1 -0
  8. package/dist/bin.js +11 -0
  9. package/dist/bin.js.map +1 -0
  10. package/dist/chunk-2KUIUUKV.js +41167 -0
  11. package/dist/chunk-2KUIUUKV.js.map +1 -0
  12. package/dist/chunk-3F6TAUAT.js +41167 -0
  13. package/dist/chunk-3F6TAUAT.js.map +1 -0
  14. package/dist/chunk-LPHUKIJU.js +17120 -0
  15. package/dist/chunk-LPHUKIJU.js.map +1 -0
  16. package/dist/chunk-LTJEM3DN.js +17161 -0
  17. package/dist/chunk-LTJEM3DN.js.map +1 -0
  18. package/dist/index.d.ts +83 -0
  19. package/dist/index.js +23 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/starter/site/.github/workflows/publish.yml +38 -0
  22. package/dist/starter/site/AGENTS.md +392 -0
  23. package/dist/starter/site/astro.config.mjs +8 -0
  24. package/dist/starter/site/package.json +21 -0
  25. package/dist/starter/site/public/.gitkeep +0 -0
  26. package/dist/starter/site/src/pages/[...slug].astro +10 -0
  27. package/dist/starter/site/tsconfig.json +5 -0
  28. package/dist/starter/variants/cloudflare/.github/openspace/gated-sync.mjs +121 -0
  29. package/dist/starter/variants/cloudflare/.github/workflows/publish.yml +70 -0
  30. package/dist/starter/variants/cloudflare/astro.config.mjs +11 -0
  31. package/dist/starter/variants/cloudflare/package.json +23 -0
  32. package/dist/starter/variants/cloudflare/wrangler.jsonc +13 -0
  33. package/dist/templates/atelier/content/collections/projects/_collection.json +13 -0
  34. package/dist/templates/atelier/content/collections/projects/cordillera.mdoc +32 -0
  35. package/dist/templates/atelier/content/collections/projects/field-studies.mdoc +32 -0
  36. package/dist/templates/atelier/content/collections/projects/salt-and-glass.mdoc +32 -0
  37. package/dist/templates/atelier/content/collections/projects/white-city.mdoc +32 -0
  38. package/dist/templates/atelier/content/pages/about.json +180 -0
  39. package/dist/templates/atelier/content/pages/commissions.json +307 -0
  40. package/dist/templates/atelier/content/pages/contact.json +117 -0
  41. package/dist/templates/atelier/content/pages/home.json +524 -0
  42. package/dist/templates/atelier/content/pages/work.json +332 -0
  43. package/dist/templates/atelier/content/site.json +190 -0
  44. package/dist/templates/atelier/content/styles.json +25 -0
  45. package/dist/templates/atelier/media/LICENSES.json +218 -0
  46. package/dist/templates/atelier/openspace.json +21 -0
  47. package/dist/templates/atelier/template.json +115 -0
  48. package/dist/templates/commons/content/collections/gatherings/_collection.json +13 -0
  49. package/dist/templates/commons/content/collections/gatherings/grant-writing-workshop.mdoc +17 -0
  50. package/dist/templates/commons/content/collections/gatherings/seed-swap.mdoc +16 -0
  51. package/dist/templates/commons/content/collections/gatherings/winter-general-assembly.mdoc +17 -0
  52. package/dist/templates/commons/content/pages/about.json +227 -0
  53. package/dist/templates/commons/content/pages/home.json +540 -0
  54. package/dist/templates/commons/content/pages/join.json +304 -0
  55. package/dist/templates/commons/content/pages/members.json +499 -0
  56. package/dist/templates/commons/content/site.json +306 -0
  57. package/dist/templates/commons/content/styles.json +27 -0
  58. package/dist/templates/commons/media/LICENSES.json +108 -0
  59. package/dist/templates/commons/openspace.json +21 -0
  60. package/dist/templates/commons/template.json +113 -0
  61. package/dist/templates/encore/content/collections/sessions/_collection.json +19 -0
  62. package/dist/templates/encore/content/collections/sessions/session-10-headphones-on.mdoc +16 -0
  63. package/dist/templates/encore/content/collections/sessions/session-11-neon-tide.mdoc +16 -0
  64. package/dist/templates/encore/content/collections/sessions/session-12-slow-static.mdoc +16 -0
  65. package/dist/templates/encore/content/collections/tour/_collection.json +13 -0
  66. package/dist/templates/encore/content/collections/tour/brooklyn-elsewhere.mdoc +18 -0
  67. package/dist/templates/encore/content/collections/tour/chicago-thalia-hall.mdoc +18 -0
  68. package/dist/templates/encore/content/collections/tour/london-electric-ballroom.mdoc +18 -0
  69. package/dist/templates/encore/content/collections/tour/minneapolis-first-avenue.mdoc +18 -0
  70. package/dist/templates/encore/content/collections/tour/toronto-danforth.mdoc +18 -0
  71. package/dist/templates/encore/content/pages/about.json +251 -0
  72. package/dist/templates/encore/content/pages/contact.json +122 -0
  73. package/dist/templates/encore/content/pages/home.json +363 -0
  74. package/dist/templates/encore/content/pages/music.json +297 -0
  75. package/dist/templates/encore/content/site.json +293 -0
  76. package/dist/templates/encore/content/styles.json +17 -0
  77. package/dist/templates/encore/media/LICENSES.json +97 -0
  78. package/dist/templates/encore/openspace.json +21 -0
  79. package/dist/templates/encore/template.json +103 -0
  80. package/dist/templates/field-notes/content/collections/essays/_collection.json +31 -0
  81. package/dist/templates/field-notes/content/collections/essays/a-year-of-apples.mdoc +25 -0
  82. package/dist/templates/field-notes/content/collections/essays/learning-a-field.mdoc +32 -0
  83. package/dist/templates/field-notes/content/collections/essays/small-weather.mdoc +25 -0
  84. package/dist/templates/field-notes/content/collections/essays/the-wall-builders.mdoc +29 -0
  85. package/dist/templates/field-notes/content/pages/about.json +236 -0
  86. package/dist/templates/field-notes/content/pages/contact.json +116 -0
  87. package/dist/templates/field-notes/content/pages/home.json +428 -0
  88. package/dist/templates/field-notes/content/pages/subscribe.json +273 -0
  89. package/dist/templates/field-notes/content/site.json +218 -0
  90. package/dist/templates/field-notes/content/styles.json +27 -0
  91. package/dist/templates/field-notes/media/LICENSES.json +119 -0
  92. package/dist/templates/field-notes/openspace.json +21 -0
  93. package/dist/templates/field-notes/template.json +112 -0
  94. package/dist/templates/harbor/content/collections/events/_collection.json +13 -0
  95. package/dist/templates/harbor/content/collections/events/coat-drive-sorting-day.mdoc +17 -0
  96. package/dist/templates/harbor/content/collections/events/safe-at-home-build-day.mdoc +17 -0
  97. package/dist/templates/harbor/content/collections/events/spring-community-supper.mdoc +17 -0
  98. package/dist/templates/harbor/content/collections/events/winter-coat-giveaway.mdoc +16 -0
  99. package/dist/templates/harbor/content/collections/news/2026-08-28-back-to-school-at-homework-harbor.mdoc +17 -0
  100. package/dist/templates/harbor/content/collections/news/2026-09-15-meet-the-repair-crew.mdoc +21 -0
  101. package/dist/templates/harbor/content/collections/news/2026-10-08-the-2025-annual-report.mdoc +25 -0
  102. package/dist/templates/harbor/content/collections/news/_collection.json +34 -0
  103. package/dist/templates/harbor/content/pages/about.json +366 -0
  104. package/dist/templates/harbor/content/pages/contact.json +233 -0
  105. package/dist/templates/harbor/content/pages/get-involved.json +425 -0
  106. package/dist/templates/harbor/content/pages/home.json +524 -0
  107. package/dist/templates/harbor/content/pages/programs.json +611 -0
  108. package/dist/templates/harbor/content/site.json +377 -0
  109. package/dist/templates/harbor/content/styles.json +25 -0
  110. package/dist/templates/harbor/media/LICENSES.json +141 -0
  111. package/dist/templates/harbor/openspace.json +21 -0
  112. package/dist/templates/harbor/template.json +115 -0
  113. package/dist/templates/hearth/content/pages/about.json +246 -0
  114. package/dist/templates/hearth/content/pages/home.json +937 -0
  115. package/dist/templates/hearth/content/pages/menu.json +396 -0
  116. package/dist/templates/hearth/content/pages/private-dining.json +288 -0
  117. package/dist/templates/hearth/content/pages/visit.json +257 -0
  118. package/dist/templates/hearth/content/site.json +214 -0
  119. package/dist/templates/hearth/content/styles.json +25 -0
  120. package/dist/templates/hearth/media/LICENSES.json +196 -0
  121. package/dist/templates/hearth/openspace.json +21 -0
  122. package/dist/templates/hearth/template.json +116 -0
  123. package/dist/templates/kiln/content/collections/classes/_collection.json +13 -0
  124. package/dist/templates/kiln/content/collections/classes/glaze-day-march.mdoc +17 -0
  125. package/dist/templates/kiln/content/collections/classes/hand-building-february.mdoc +17 -0
  126. package/dist/templates/kiln/content/collections/classes/spring-studio-sale.mdoc +15 -0
  127. package/dist/templates/kiln/content/collections/classes/wheel-weekend-january.mdoc +17 -0
  128. package/dist/templates/kiln/content/collections/shop/_collection.json +14 -0
  129. package/dist/templates/kiln/content/collections/shop/ash-bud-vases.mdoc +18 -0
  130. package/dist/templates/kiln/content/collections/shop/harbor-planter.mdoc +18 -0
  131. package/dist/templates/kiln/content/collections/shop/morning-cup-pair.mdoc +24 -0
  132. package/dist/templates/kiln/content/collections/shop/sea-glass-planter.mdoc +18 -0
  133. package/dist/templates/kiln/content/collections/shop/tide-vase.mdoc +23 -0
  134. package/dist/templates/kiln/content/collections/shop/walnut-step-stool.mdoc +18 -0
  135. package/dist/templates/kiln/content/pages/about.json +344 -0
  136. package/dist/templates/kiln/content/pages/contact.json +232 -0
  137. package/dist/templates/kiln/content/pages/home.json +754 -0
  138. package/dist/templates/kiln/content/pages/workshops.json +352 -0
  139. package/dist/templates/kiln/content/site.json +263 -0
  140. package/dist/templates/kiln/content/styles.json +17 -0
  141. package/dist/templates/kiln/media/LICENSES.json +119 -0
  142. package/dist/templates/kiln/openspace.json +21 -0
  143. package/dist/templates/kiln/template.json +103 -0
  144. package/dist/templates/ledger/content/collections/case-studies/_collection.json +14 -0
  145. package/dist/templates/ledger/content/collections/case-studies/fieldwork-coffee.mdoc +29 -0
  146. package/dist/templates/ledger/content/collections/case-studies/larkspur-foods.mdoc +29 -0
  147. package/dist/templates/ledger/content/collections/case-studies/ostrander-clinics.mdoc +29 -0
  148. package/dist/templates/ledger/content/collections/insights/2026-08-10-one-page-of-numbers.mdoc +12 -0
  149. package/dist/templates/ledger/content/collections/insights/2026-09-07-hiring-your-first-coo.mdoc +17 -0
  150. package/dist/templates/ledger/content/collections/insights/2026-10-05-the-decision-log.mdoc +15 -0
  151. package/dist/templates/ledger/content/collections/insights/_collection.json +21 -0
  152. package/dist/templates/ledger/content/pages/about.json +298 -0
  153. package/dist/templates/ledger/content/pages/contact.json +158 -0
  154. package/dist/templates/ledger/content/pages/home.json +621 -0
  155. package/dist/templates/ledger/content/pages/services.json +639 -0
  156. package/dist/templates/ledger/content/site.json +336 -0
  157. package/dist/templates/ledger/content/styles.json +17 -0
  158. package/dist/templates/ledger/media/LICENSES.json +86 -0
  159. package/dist/templates/ledger/openspace.json +21 -0
  160. package/dist/templates/ledger/template.json +102 -0
  161. package/dist/templates/link/content/pages/home.json +278 -0
  162. package/dist/templates/link/content/site.json +168 -0
  163. package/dist/templates/link/content/styles.json +17 -0
  164. package/dist/templates/link/media/LICENSES.json +97 -0
  165. package/dist/templates/link/openspace.json +21 -0
  166. package/dist/templates/link/template.json +87 -0
  167. package/dist/templates/meadow/content/collections/journal/2026-09-02-meet-daniel.mdoc +20 -0
  168. package/dist/templates/meadow/content/collections/journal/2026-09-28-a-practice-for-dark-mornings.mdoc +24 -0
  169. package/dist/templates/meadow/content/collections/journal/2026-10-12-why-twelve-mats.mdoc +26 -0
  170. package/dist/templates/meadow/content/collections/journal/_collection.json +34 -0
  171. package/dist/templates/meadow/content/collections/workshops/_collection.json +13 -0
  172. package/dist/templates/meadow/content/collections/workshops/breath-and-rest-workshop.mdoc +17 -0
  173. package/dist/templates/meadow/content/collections/workshops/foundations-four-weeks.mdoc +17 -0
  174. package/dist/templates/meadow/content/collections/workshops/manzanita-spring-retreat.mdoc +17 -0
  175. package/dist/templates/meadow/content/collections/workshops/winter-solstice-restorative.mdoc +17 -0
  176. package/dist/templates/meadow/content/pages/about.json +344 -0
  177. package/dist/templates/meadow/content/pages/bodywork.json +330 -0
  178. package/dist/templates/meadow/content/pages/classes.json +820 -0
  179. package/dist/templates/meadow/content/pages/contact.json +240 -0
  180. package/dist/templates/meadow/content/pages/home.json +556 -0
  181. package/dist/templates/meadow/content/site.json +290 -0
  182. package/dist/templates/meadow/content/styles.json +25 -0
  183. package/dist/templates/meadow/media/LICENSES.json +130 -0
  184. package/dist/templates/meadow/openspace.json +21 -0
  185. package/dist/templates/meadow/template.json +116 -0
  186. package/dist/templates/signal/content/collections/changelog/2026-09-08-faster-sms.mdoc +11 -0
  187. package/dist/templates/signal/content/collections/changelog/2026-09-22-postmortem-drafts.mdoc +11 -0
  188. package/dist/templates/signal/content/collections/changelog/2026-10-06-quiet-hours.mdoc +13 -0
  189. package/dist/templates/signal/content/collections/changelog/2026-10-20-status-pages-that-update-themselves.mdoc +17 -0
  190. package/dist/templates/signal/content/collections/changelog/_collection.json +39 -0
  191. package/dist/templates/signal/content/pages/about.json +258 -0
  192. package/dist/templates/signal/content/pages/contact.json +122 -0
  193. package/dist/templates/signal/content/pages/home.json +1062 -0
  194. package/dist/templates/signal/content/pages/pricing.json +460 -0
  195. package/dist/templates/signal/content/site.json +345 -0
  196. package/dist/templates/signal/content/styles.json +17 -0
  197. package/dist/templates/signal/media/LICENSES.json +119 -0
  198. package/dist/templates/signal/openspace.json +21 -0
  199. package/dist/templates/signal/template.json +103 -0
  200. package/dist/templates/vow/content/pages/about.json +314 -0
  201. package/dist/templates/vow/content/pages/home.json +400 -0
  202. package/dist/templates/vow/content/pages/registry.json +207 -0
  203. package/dist/templates/vow/content/pages/rsvp.json +145 -0
  204. package/dist/templates/vow/content/pages/schedule.json +281 -0
  205. package/dist/templates/vow/content/pages/travel.json +326 -0
  206. package/dist/templates/vow/content/site.json +200 -0
  207. package/dist/templates/vow/content/styles.json +17 -0
  208. package/dist/templates/vow/media/LICENSES.json +130 -0
  209. package/dist/templates/vow/openspace.json +21 -0
  210. package/dist/templates/vow/template.json +113 -0
  211. package/package.json +71 -3
@@ -0,0 +1,314 @@
1
+ {
2
+ "$schema": "https://schema.openspace.dev/v1/page.json",
3
+ "id": "pg_1qkwpmqv9x",
4
+ "title": "Our story",
5
+ "slug": "about",
6
+ "seo": {
7
+ "description": "How Amara Osei and Theo Lindgren met on the wrong train, and the friends and family standing with them on the day."
8
+ },
9
+ "sections": [
10
+ {
11
+ "id": "sec_j0haescs8x",
12
+ "preset": "about/story-editorial@1",
13
+ "label": "Editorial story",
14
+ "layout": {
15
+ "mode": "stack",
16
+ "columns": {
17
+ "d": [
18
+ 12
19
+ ]
20
+ },
21
+ "width": "narrow"
22
+ },
23
+ "style": {
24
+ "colorTheme": "light",
25
+ "padding": {
26
+ "d": "xl",
27
+ "m": "lg"
28
+ }
29
+ },
30
+ "blocks": [
31
+ {
32
+ "id": "blk_k1brdntras",
33
+ "type": "heading",
34
+ "v": 1,
35
+ "fields": {
36
+ "text": "Seven years and one wrong train",
37
+ "level": "h1",
38
+ "size": "h1",
39
+ "eyebrow": "Our story"
40
+ },
41
+ "variant": "plain",
42
+ "style": {
43
+ "align": {
44
+ "d": "center"
45
+ }
46
+ }
47
+ },
48
+ {
49
+ "id": "blk_v24zg0zrdm",
50
+ "type": "text",
51
+ "v": 1,
52
+ "fields": {
53
+ "content": {
54
+ "type": "doc",
55
+ "content": [
56
+ {
57
+ "type": "paragraph",
58
+ "content": [
59
+ {
60
+ "type": "text",
61
+ "text": "In March 2019, Amara boarded a train at Oakland's 12th Street station, sure it was going to Berkeley. Theo, coming home from a hospital night shift, was sure of the same thing. It was going to Richmond. By the time they realised, they had covered favourite books, terrible roommates and why anyone eats cereal for dinner."
62
+ }
63
+ ]
64
+ },
65
+ {
66
+ "type": "paragraph",
67
+ "content": [
68
+ {
69
+ "type": "text",
70
+ "text": "Their first date was a week later, at a taco truck that has since closed and is still mourned. There followed two apartments, one adopted cat called Admiral, a lot of camping in the rain and a shared conviction that the best evenings involve a long table and too much food."
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "type": "paragraph",
76
+ "content": [
77
+ {
78
+ "type": "text",
79
+ "text": "Theo proposed in April 2026 on the 12th Street platform, during the evening rush, with a ring hidden in a paperback. Amara said yes before he'd finished the question. We're so glad you're part of the story."
80
+ }
81
+ ]
82
+ }
83
+ ]
84
+ }
85
+ },
86
+ "variant": "drop-cap"
87
+ }
88
+ ]
89
+ },
90
+ {
91
+ "id": "sec_fpk4gypthk",
92
+ "preset": "gallery/layered-pair@1",
93
+ "label": "Layered pair",
94
+ "layout": {
95
+ "mode": "grid",
96
+ "rows": {
97
+ "d": 24,
98
+ "m": 30
99
+ },
100
+ "items": {
101
+ "blk_w3dews5483": {
102
+ "d": {
103
+ "x": 1,
104
+ "y": 1,
105
+ "w": 13,
106
+ "h": 18
107
+ },
108
+ "m": {
109
+ "x": 1,
110
+ "y": 1,
111
+ "w": 8,
112
+ "h": 11
113
+ }
114
+ },
115
+ "blk_pc7nsyfhm5": {
116
+ "d": {
117
+ "x": 10,
118
+ "y": 12,
119
+ "w": 7,
120
+ "h": 13,
121
+ "z": 2
122
+ },
123
+ "m": {
124
+ "x": 4,
125
+ "y": 9,
126
+ "w": 5,
127
+ "h": 9,
128
+ "z": 2
129
+ }
130
+ },
131
+ "blk_fqbwy7jt6v": {
132
+ "d": {
133
+ "x": 18,
134
+ "y": 6,
135
+ "w": 7,
136
+ "h": 6
137
+ },
138
+ "m": {
139
+ "x": 1,
140
+ "y": 19,
141
+ "w": 8,
142
+ "h": 6
143
+ }
144
+ },
145
+ "blk_ashhzhqb4v": {
146
+ "d": {
147
+ "x": 18,
148
+ "y": 12,
149
+ "w": 7,
150
+ "h": 7
151
+ },
152
+ "m": {
153
+ "x": 1,
154
+ "y": 25,
155
+ "w": 8,
156
+ "h": 6
157
+ }
158
+ }
159
+ }
160
+ },
161
+ "style": {
162
+ "colorTheme": "light-accent"
163
+ },
164
+ "blocks": [
165
+ {
166
+ "id": "blk_w3dews5483",
167
+ "type": "image",
168
+ "v": 1,
169
+ "fields": {
170
+ "image": {
171
+ "src": "https://images.unsplash.com/photo-1660286156087-911df708e663?w=1280&q=80",
172
+ "alt": "Walking back down the aisle at a friend's wedding",
173
+ "width": 1280,
174
+ "height": 853
175
+ },
176
+ "aspect": "original",
177
+ "lightbox": false
178
+ },
179
+ "variant": "default"
180
+ },
181
+ {
182
+ "id": "blk_pc7nsyfhm5",
183
+ "type": "image",
184
+ "v": 1,
185
+ "fields": {
186
+ "image": {
187
+ "src": "https://images.unsplash.com/photo-1465495976277-4387d4b0b4c6?w=720&q=80",
188
+ "alt": "Rings resting on a bouquet",
189
+ "width": 720,
190
+ "height": 480
191
+ },
192
+ "aspect": "original",
193
+ "lightbox": false
194
+ },
195
+ "variant": "default",
196
+ "style": {
197
+ "shadow": "lg"
198
+ }
199
+ },
200
+ {
201
+ "id": "blk_fqbwy7jt6v",
202
+ "type": "heading",
203
+ "v": 1,
204
+ "fields": {
205
+ "text": "Platform 2, rush hour",
206
+ "level": "h2",
207
+ "size": "auto",
208
+ "eyebrow": "The proposal"
209
+ },
210
+ "variant": "plain"
211
+ },
212
+ {
213
+ "id": "blk_ashhzhqb4v",
214
+ "type": "text",
215
+ "v": 1,
216
+ "fields": {
217
+ "content": {
218
+ "type": "doc",
219
+ "content": [
220
+ {
221
+ "type": "paragraph",
222
+ "content": [
223
+ {
224
+ "type": "text",
225
+ "text": "A paperback, a ring and a lot of very surprised commuters, who applauded when Amara said yes."
226
+ }
227
+ ]
228
+ }
229
+ ]
230
+ }
231
+ },
232
+ "variant": "default"
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "id": "sec_qe98axyw8s",
238
+ "preset": "team/circles@1",
239
+ "label": "Team in circles",
240
+ "layout": {
241
+ "mode": "stack",
242
+ "columns": {
243
+ "d": [
244
+ 12
245
+ ]
246
+ },
247
+ "gap": "xl"
248
+ },
249
+ "style": {
250
+ "colorTheme": "light-accent"
251
+ },
252
+ "blocks": [
253
+ {
254
+ "id": "blk_8p450x8jek",
255
+ "type": "heading",
256
+ "v": 1,
257
+ "fields": {
258
+ "text": "The wedding party",
259
+ "level": "h2",
260
+ "size": "auto",
261
+ "eyebrow": "Standing with us"
262
+ },
263
+ "variant": "plain",
264
+ "style": {
265
+ "align": {
266
+ "d": "center"
267
+ }
268
+ }
269
+ },
270
+ {
271
+ "id": "blk_x7da20a8eq",
272
+ "type": "team",
273
+ "v": 1,
274
+ "fields": {
275
+ "people": [
276
+ {
277
+ "name": "Priya Nair",
278
+ "role": "Officiant · Amara's oldest friend",
279
+ "photo": {
280
+ "src": "https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=560&q=80",
281
+ "alt": "Portrait of Priya Nair",
282
+ "width": 560,
283
+ "height": 700
284
+ }
285
+ },
286
+ {
287
+ "name": "Freya Lindgren",
288
+ "role": "Best woman · Theo's sister",
289
+ "photo": {
290
+ "src": "https://images.unsplash.com/photo-1544005313-94ddf0286df2?w=560&q=80",
291
+ "alt": "Portrait of Freya Lindgren",
292
+ "width": 560,
293
+ "height": 839
294
+ }
295
+ },
296
+ {
297
+ "name": "Kwame Osei",
298
+ "role": "Man of honour · Amara's brother",
299
+ "photo": {
300
+ "src": "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=560&q=80",
301
+ "alt": "Portrait of Kwame Osei",
302
+ "width": 560,
303
+ "height": 840
304
+ }
305
+ }
306
+ ],
307
+ "columns": "3"
308
+ },
309
+ "variant": "circles"
310
+ }
311
+ ]
312
+ }
313
+ ]
314
+ }