picked 0.0.101-next.2 → 0.0.101

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 (175) hide show
  1. package/README.md +27 -12
  2. package/docs/explanation/conditions-and-the-logic-engine.md +94 -0
  3. package/docs/explanation/content-references.md +99 -0
  4. package/docs/explanation/feature-flag-allocation.md +218 -0
  5. package/docs/explanation/how-picked-works.md +124 -0
  6. package/docs/explanation/how-pickedql-works.md +76 -0
  7. package/docs/explanation/pages-and-flows.md +64 -0
  8. package/docs/explanation/the-content-model.md +87 -0
  9. package/docs/explanation/the-two-apis.md +68 -0
  10. package/docs/explanation/why-server-side-rendering.md +76 -0
  11. package/docs/explanation/workspaces-and-versions.md +71 -0
  12. package/docs/how-to/add-a-step-field-or-action.md +56 -0
  13. package/docs/how-to/analytics/index.md +324 -0
  14. package/docs/how-to/archive-or-delete-a-workspace.md +59 -0
  15. package/docs/how-to/authenticate-the-cli.md +101 -0
  16. package/docs/how-to/authenticate-with-a-magic-link.md +56 -0
  17. package/docs/how-to/authenticate-with-a-password.md +68 -0
  18. package/docs/how-to/authenticate-with-an-api-key.md +60 -0
  19. package/docs/how-to/authenticate-with-oauth.md +49 -0
  20. package/docs/how-to/build-a-flow.md +106 -0
  21. package/docs/how-to/call-an-external-api-from-a-workflow.md +116 -0
  22. package/docs/how-to/connect-the-mcp-server.md +46 -0
  23. package/docs/how-to/create-a-content-entry.md +58 -0
  24. package/docs/how-to/create-a-project.md +40 -0
  25. package/docs/how-to/create-an-experience.md +51 -0
  26. package/docs/how-to/create-and-revoke-an-api-key.md +54 -0
  27. package/docs/how-to/debug-with-the-chrome-extension.md +57 -0
  28. package/docs/how-to/define-a-page-layout.md +54 -0
  29. package/docs/how-to/fill-and-publish-a-page.md +82 -0
  30. package/docs/how-to/install-the-gtm-template.md +84 -0
  31. package/docs/how-to/install-the-sdk.md +93 -0
  32. package/docs/how-to/install-the-vite-plugin.md +69 -0
  33. package/docs/how-to/invite-and-remove-members.md +45 -0
  34. package/docs/how-to/point-one-entry-at-another.md +75 -0
  35. package/docs/how-to/preview-a-workspace.md +39 -0
  36. package/docs/how-to/publish-a-workspace.md +42 -0
  37. package/docs/how-to/read-a-feature-flag.md +113 -0
  38. package/docs/how-to/read-a-referenced-entry.md +109 -0
  39. package/docs/how-to/register-a-component.md +55 -0
  40. package/docs/how-to/register-an-action-handler.md +85 -0
  41. package/docs/how-to/register-an-api-that-uses-oauth2.md +107 -0
  42. package/docs/how-to/render-a-step-form.md +131 -0
  43. package/docs/how-to/render-an-unpublished-preview.md +41 -0
  44. package/docs/how-to/retry-a-failed-call-with-a-loop.md +81 -0
  45. package/docs/how-to/reuse-a-section.md +64 -0
  46. package/docs/how-to/reuse-a-step-field-or-action.md +39 -0
  47. package/docs/how-to/roll-back-a-published-version.md +39 -0
  48. package/docs/how-to/run-an-ab-test.md +59 -0
  49. package/docs/how-to/run-code-on-a-form-submission.md +125 -0
  50. package/docs/how-to/server-render-a-page.md +81 -0
  51. package/docs/how-to/set-a-content-security-policy.md +32 -0
  52. package/docs/how-to/set-up-mfa.md +126 -0
  53. package/docs/how-to/switch-workspaces.md +122 -0
  54. package/docs/how-to/upload-and-use-an-asset.mdx +87 -0
  55. package/docs/how-to/validate-a-field.md +52 -0
  56. package/docs/how-to/wait-for-an-action-response.md +182 -0
  57. package/docs/how-to/write-a-condition.md +57 -0
  58. package/docs/how-to/write-a-predicate.md +60 -0
  59. package/docs/index.md +59 -0
  60. package/docs/reference/dashboard/actions.mdx +65 -0
  61. package/docs/reference/dashboard/api-keys.mdx +47 -0
  62. package/docs/reference/dashboard/conditions.mdx +51 -0
  63. package/docs/reference/dashboard/content/asset-library.mdx +74 -0
  64. package/docs/reference/dashboard/content/blocks.mdx +66 -0
  65. package/docs/reference/dashboard/content/content-entries.mdx +109 -0
  66. package/docs/reference/dashboard/content/models.mdx +119 -0
  67. package/docs/reference/dashboard/content/pages.mdx +72 -0
  68. package/docs/reference/dashboard/experiences.mdx +61 -0
  69. package/docs/reference/dashboard/external-apis.md +182 -0
  70. package/docs/reference/dashboard/features.mdx +165 -0
  71. package/docs/reference/dashboard/fields.mdx +120 -0
  72. package/docs/reference/dashboard/flow-builder/canvas.mdx +58 -0
  73. package/docs/reference/dashboard/flow-builder/condition-builder.md +69 -0
  74. package/docs/reference/dashboard/flow-builder/keyboard-shortcuts.md +72 -0
  75. package/docs/reference/dashboard/flow-builder/nodes.md +74 -0
  76. package/docs/reference/dashboard/labels.md +321 -0
  77. package/docs/reference/dashboard/lead-search.md +235 -0
  78. package/docs/reference/dashboard/projects.mdx +53 -0
  79. package/docs/reference/dashboard/reports.mdx +53 -0
  80. package/docs/reference/dashboard/steps.mdx +47 -0
  81. package/docs/reference/dashboard/team-management.md +38 -0
  82. package/docs/reference/dashboard/workflow-runs.md +157 -0
  83. package/docs/reference/dashboard/workflow-templates.md +182 -0
  84. package/docs/reference/dashboard/workflow-test-runs.md +85 -0
  85. package/docs/reference/dashboard/workspace-versioning.mdx +42 -0
  86. package/docs/reference/dashboard/workspaces.mdx +91 -0
  87. package/docs/reference/delivery-api/experience-content.md +152 -0
  88. package/docs/reference/delivery-api/index.md +45 -0
  89. package/docs/reference/delivery-api/preview-caching-crawling.md +79 -0
  90. package/docs/reference/delivery-api/project-config.md +65 -0
  91. package/docs/reference/delivery-api/workspace-schema.md +107 -0
  92. package/docs/reference/glossary.md +201 -0
  93. package/docs/reference/management-api/authentication.md +87 -0
  94. package/docs/reference/management-api/authorization-and-scopes.md +291 -0
  95. package/docs/reference/management-api/error-handling.md +232 -0
  96. package/docs/reference/management-api/pagination.md +192 -0
  97. package/docs/reference/management-api/schema/action.md +261 -0
  98. package/docs/reference/management-api/schema/analytics-session.md +363 -0
  99. package/docs/reference/management-api/schema/analytics.md +73 -0
  100. package/docs/reference/management-api/schema/api-key.md +170 -0
  101. package/docs/reference/management-api/schema/auth.md +1177 -0
  102. package/docs/reference/management-api/schema/cms-fields.md +954 -0
  103. package/docs/reference/management-api/schema/cms-models.md +1155 -0
  104. package/docs/reference/management-api/schema/common.md +362 -0
  105. package/docs/reference/management-api/schema/condition.md +254 -0
  106. package/docs/reference/management-api/schema/design-system.md +199 -0
  107. package/docs/reference/management-api/schema/experience.md +1098 -0
  108. package/docs/reference/management-api/schema/external-api.md +637 -0
  109. package/docs/reference/management-api/schema/feature.md +350 -0
  110. package/docs/reference/management-api/schema/feedback.md +103 -0
  111. package/docs/reference/management-api/schema/field.md +400 -0
  112. package/docs/reference/management-api/schema/index.md +243 -0
  113. package/docs/reference/management-api/schema/integration.md +272 -0
  114. package/docs/reference/management-api/schema/label.md +349 -0
  115. package/docs/reference/management-api/schema/lead.md +340 -0
  116. package/docs/reference/management-api/schema/mcp-server.md +299 -0
  117. package/docs/reference/management-api/schema/metric.md +223 -0
  118. package/docs/reference/management-api/schema/operation.md +96 -0
  119. package/docs/reference/management-api/schema/organization.md +749 -0
  120. package/docs/reference/management-api/schema/project.md +607 -0
  121. package/docs/reference/management-api/schema/report.md +243 -0
  122. package/docs/reference/management-api/schema/saved-view.md +288 -0
  123. package/docs/reference/management-api/schema/shopify.md +795 -0
  124. package/docs/reference/management-api/schema/step.md +273 -0
  125. package/docs/reference/management-api/schema/tenant-branding.md +185 -0
  126. package/docs/reference/management-api/schema/workbench.md +246 -0
  127. package/docs/reference/management-api/schema/workflow-run.md +263 -0
  128. package/docs/reference/management-api/schema/workflow.md +1110 -0
  129. package/docs/reference/management-api/schema/workspace-version.md +823 -0
  130. package/docs/reference/management-api/schema/workspace.md +917 -0
  131. package/docs/reference/pickedql/data-sources.md +174 -0
  132. package/docs/reference/pickedql/dimensions.md +103 -0
  133. package/docs/reference/pickedql/filtering.md +64 -0
  134. package/docs/reference/pickedql/index.md +18 -0
  135. package/docs/reference/pickedql/schema.md +172 -0
  136. package/docs/reference/pickedql/virtual-functions.md +248 -0
  137. package/docs/reference/sdk/actions.md +154 -0
  138. package/docs/reference/sdk/analytics-events.md +453 -0
  139. package/docs/reference/sdk/conditions.md +147 -0
  140. package/docs/reference/sdk/content-security-policy.md +21 -0
  141. package/docs/reference/sdk/content.md +253 -0
  142. package/docs/reference/sdk/experiences.md +51 -0
  143. package/docs/reference/sdk/features.md +256 -0
  144. package/docs/reference/sdk/fields.md +255 -0
  145. package/docs/reference/sdk/index.md +68 -0
  146. package/docs/reference/sdk/plugins/create-experience.md +123 -0
  147. package/docs/reference/sdk/plugins/dynamic-experiences.md +74 -0
  148. package/docs/reference/sdk/plugins/fingerprintjs.md +39 -0
  149. package/docs/reference/sdk/plugins/hotjar.md +60 -0
  150. package/docs/reference/sdk/plugins/index.md +33 -0
  151. package/docs/reference/sdk/plugins/sentry.md +51 -0
  152. package/docs/reference/sdk/plugins/shopify.md +109 -0
  153. package/docs/reference/sdk/plugins/window-object.md +25 -0
  154. package/docs/reference/sdk/predicates.md +43 -0
  155. package/docs/reference/sdk/react.md +61 -0
  156. package/docs/reference/sdk/ssr/index.md +33 -0
  157. package/docs/reference/sdk/ssr/rendering-and-hydration.md +103 -0
  158. package/docs/reference/sdk/ssr/serialize.md +80 -0
  159. package/docs/reference/sdk/ssr/slots-and-placements.md +113 -0
  160. package/docs/reference/sdk/steps.md +86 -0
  161. package/docs/reference/sdk/svelte.md +74 -0
  162. package/docs/reference/sdk/type-generation.md +265 -0
  163. package/docs/reference/tools/admin-api-client.md +89 -0
  164. package/docs/reference/tools/chrome-extension.md +16 -0
  165. package/docs/reference/tools/cli.md +319 -0
  166. package/docs/reference/tools/delivery-api-client.md +60 -0
  167. package/docs/reference/tools/image-optimisation-service.md +104 -0
  168. package/docs/reference/tools/mcp-run.md +121 -0
  169. package/docs/reference/tools/mcp.md +391 -0
  170. package/docs/reference/tools/vite-plugin.md +163 -0
  171. package/docs/tutorials/first-api-call.md +253 -0
  172. package/docs/tutorials/first-experience-in-the-dashboard.mdx +160 -0
  173. package/docs/tutorials/first-experience.mdx +254 -0
  174. package/docs/tutorials/first-server-rendered-page.mdx +186 -0
  175. package/package.json +8 -7
@@ -0,0 +1,400 @@
1
+ ---
2
+ type: reference
3
+ layout: docs
4
+ generated: true
5
+ ---
6
+
7
+ # Field schema
8
+
9
+ The operations and types that `field.graphql` adds to the Management API. See [Management API schema](/reference/management-api/schema) for every domain, the endpoint and authentication.
10
+
11
+ ## Queries
12
+
13
+ ### `field`
14
+
15
+ Get a field by ID within a workspace.
16
+
17
+ ```graphql
18
+ field(id: ID!, workspaceId: ID!): Field @auth
19
+ ```
20
+
21
+ ### `fields`
22
+
23
+ Get list of fields within a workspace.
24
+
25
+ ```graphql
26
+ fields(
27
+ workspaceId: ID!
28
+ first: Int
29
+ after: String
30
+ last: Int
31
+ before: String
32
+ search: String
33
+ sortKey: FieldSortKeys = NAME
34
+ reverse: Boolean = false
35
+ """
36
+ Restrict the listing to the fields attached to this step. Search, sort and paging still apply; `totalCount` counts the step.
37
+ """
38
+ stepId: ID
39
+ ): FieldConnection! @auth
40
+ ```
41
+
42
+ ## Mutations
43
+
44
+ ### `fieldCreate`
45
+
46
+ Create a new field. Requires scope: `ORGANIZATION_PROJECTS_CREATE`.
47
+
48
+ ```graphql
49
+ fieldCreate(input: FieldCreateInput!): FieldCreatePayload! @auth
50
+ ```
51
+
52
+ ### `fieldUpdate`
53
+
54
+ Update a field. Requires scope: `ORGANIZATION_PROJECTS_UPDATE`.
55
+
56
+ ```graphql
57
+ fieldUpdate(input: FieldUpdateInput!): FieldUpdatePayload! @auth
58
+ ```
59
+
60
+ ### `fieldDelete`
61
+
62
+ Delete a field. Requires scope: `ORGANIZATION_PROJECTS_DELETE`.
63
+
64
+ ```graphql
65
+ fieldDelete(input: FieldDeleteInput!): FieldDeletePayload! @auth
66
+ ```
67
+
68
+ ## Types
69
+
70
+ ### `FieldType`
71
+
72
+ ```graphql
73
+ """Field type — what kind of value the field captures."""
74
+ enum FieldType {
75
+ """Plain text input."""
76
+ TEXT
77
+ """Numeric input."""
78
+ NUMBER
79
+ """Boolean (checkbox/toggle)."""
80
+ BOOLEAN
81
+ """Free-form JSON structure (the SDK plugin renders an editor)."""
82
+ OBJECT
83
+ }
84
+ ```
85
+
86
+ ### `Field`
87
+
88
+ ```graphql
89
+ """
90
+ A form field within a workspace. Reused across steps via `Step.fields`.
91
+ Defines the input control's type, label, validation rules, default
92
+ value, and any select-style options.
93
+
94
+ `validation`, `defaultValue`, `condition`, and `options` are JSON blobs
95
+ whose shapes depend on `type` — see the field-create / field-update
96
+ mutations for the canonical shapes.
97
+ """
98
+ type Field {
99
+ """Unique field identifier."""
100
+ id: ID!
101
+ """
102
+ Stable machine-readable name (used to key the value in the captured payload).
103
+ """
104
+ name: String!
105
+ """Stable, human-readable key for SDK consumers."""
106
+ key: String!
107
+ """Human-readable label shown to end-users next to the input."""
108
+ label: String!
109
+ """The kind of value the field captures."""
110
+ type: FieldType!
111
+ """
112
+ Whether multiple values are allowed (renders as a multi-select / repeating input).
113
+ """
114
+ multiple: Boolean!
115
+ """Whether the field is required."""
116
+ required: Boolean!
117
+ """JSON validation rules (shape depends on `type`)."""
118
+ validation: JSON
119
+ """
120
+ Selectable options when the field is a single/multi-select (shape: `{ label, value, ... }`).
121
+ """
122
+ options: [FieldOption!]
123
+ """
124
+ JSON condition controlling whether the field is rendered (JSON Logic AST).
125
+ """
126
+ condition: JSON
127
+ """JSON default value (shape depends on `type`)."""
128
+ defaultValue: JSON
129
+ """Placeholder text rendered inside the input when empty."""
130
+ placeholder: String
131
+ """Field description shown alongside the label."""
132
+ description: String
133
+ """Help text rendered below the field as a hint."""
134
+ helpText: String
135
+ """When true, the captured value is excluded from analytics tracking."""
136
+ doNotTrack: Boolean!
137
+ """When true, the captured value is excluded from persistence."""
138
+ doNotStore: Boolean!
139
+ """The list of steps this field belongs to."""
140
+ steps: StepConnection!
141
+ """The workspace this field belongs to."""
142
+ workspace: Workspace!
143
+ """The workspace ID this field belongs to."""
144
+ workspaceId: ID!
145
+ """When this field was created."""
146
+ createdAt: DateTime!
147
+ """When this field was last updated."""
148
+ updatedAt: DateTime!
149
+ }
150
+ ```
151
+
152
+ ### `FieldOption`
153
+
154
+ ```graphql
155
+ """
156
+ A single selectable option within a field (only meaningful for select-style fields).
157
+ """
158
+ type FieldOption {
159
+ """Stable option identifier."""
160
+ id: ID!
161
+ """Human-readable label shown to end-users."""
162
+ label: String!
163
+ """Optional description shown alongside the label."""
164
+ description: String
165
+ """
166
+ The option's machine value (becomes the field's captured value when selected).
167
+ """
168
+ value: JSON!
169
+ """JSON Logic condition controlling whether this option is rendered."""
170
+ condition: JSON
171
+ }
172
+ ```
173
+
174
+ ### `FieldEdge`
175
+
176
+ ```graphql
177
+ """Edge type for `FieldConnection`."""
178
+ type FieldEdge {
179
+ """Pagination cursor for this edge."""
180
+ cursor: String!
181
+ """The field."""
182
+ node: Field!
183
+ }
184
+ ```
185
+
186
+ ### `FieldConnection`
187
+
188
+ ```graphql
189
+ """
190
+ Relay-style connection of fields, with both an `edges` list and a flat `nodes` accessor.
191
+ """
192
+ type FieldConnection {
193
+ """List of field edges."""
194
+ edges: [FieldEdge!]!
195
+ """
196
+ Flat list of fields, equivalent to `edges[].node`. Convenience accessor.
197
+ """
198
+ nodes: [Field!]!
199
+ """Pagination metadata."""
200
+ pageInfo: PageInfo!
201
+ """Total number of fields."""
202
+ totalCount: Int!
203
+ }
204
+ ```
205
+
206
+ ### `FieldCreateInput`
207
+
208
+ ```graphql
209
+ """Input for `fieldCreate`."""
210
+ input FieldCreateInput {
211
+ """Workspace ID to create the field in."""
212
+ workspaceId: ID!
213
+ """Stable machine-readable name."""
214
+ name: String!
215
+ """Unique key identifier for the field."""
216
+ key: String!
217
+ """Human-readable label."""
218
+ label: String!
219
+ """The field type."""
220
+ type: FieldType!
221
+ """Whether multiple values are allowed."""
222
+ multiple: Boolean
223
+ """Whether the field is required."""
224
+ required: Boolean
225
+ """
226
+ Validation rules as a JSON-encoded string. Server parses before persisting.
227
+ """
228
+ validationString: String
229
+ """JSON default value (shape depends on `type`)."""
230
+ defaultValue: JSON
231
+ """
232
+ Field options as a JSON array (only meaningful for select-style fields).
233
+ """
234
+ options: JSON
235
+ """JSON Logic condition controlling whether the field is rendered."""
236
+ condition: JSON
237
+ """Placeholder text."""
238
+ placeholder: String
239
+ """Description shown alongside the label."""
240
+ description: String
241
+ """Help text shown below the field."""
242
+ helpText: String
243
+ """
244
+ When true, the captured value is excluded from analytics tracking. Omitted defaults to `true`: tracking is opt-in.
245
+ """
246
+ doNotTrack: Boolean
247
+ """
248
+ When true, the captured value is excluded from persistence. Omitted defaults to `true`: persistence is opt-in.
249
+ """
250
+ doNotStore: Boolean
251
+ }
252
+ ```
253
+
254
+ ### `FieldCreatePayload`
255
+
256
+ ```graphql
257
+ """Payload returned by `fieldCreate`."""
258
+ type FieldCreatePayload {
259
+ """The created field."""
260
+ field: Field
261
+ }
262
+ ```
263
+
264
+ ### `FieldUpdateInput`
265
+
266
+ ```graphql
267
+ """
268
+ Input for `fieldUpdate`. Omit a field to leave it unchanged (but `type` is required because it is used to coerce other fields).
269
+ """
270
+ input FieldUpdateInput {
271
+ """Field ID."""
272
+ id: ID!
273
+ """Workspace ID the field belongs to."""
274
+ workspaceId: ID!
275
+ """New machine-readable name."""
276
+ name: String
277
+ """New label."""
278
+ label: String
279
+ """
280
+ Field type. Required even when unchanged — used to coerce `validationString`, `options`, and `defaultValue` server-side.
281
+ """
282
+ type: FieldType!
283
+ """Whether multiple values are allowed."""
284
+ multiple: Boolean
285
+ """Whether the field is required."""
286
+ required: Boolean
287
+ """Validation rules as a JSON-encoded string."""
288
+ validationString: String
289
+ """JSON default value."""
290
+ defaultValue: JSON
291
+ """Field options as a JSON array."""
292
+ options: JSON
293
+ """JSON Logic condition controlling whether the field is rendered."""
294
+ condition: JSON
295
+ """Placeholder text."""
296
+ placeholder: String
297
+ """Description shown alongside the label."""
298
+ description: String
299
+ """Help text shown below the field."""
300
+ helpText: String
301
+ """When true, the captured value is excluded from analytics tracking."""
302
+ doNotTrack: Boolean
303
+ """When true, the captured value is excluded from persistence."""
304
+ doNotStore: Boolean
305
+ }
306
+ ```
307
+
308
+ ### `FieldUpdatePayload`
309
+
310
+ ```graphql
311
+ """Payload returned by `fieldUpdate`."""
312
+ type FieldUpdatePayload {
313
+ """The updated field."""
314
+ field: Field
315
+ }
316
+ ```
317
+
318
+ ### `FieldDeleteInput`
319
+
320
+ ```graphql
321
+ """Input for `fieldDelete`."""
322
+ input FieldDeleteInput {
323
+ """Field ID."""
324
+ id: ID!
325
+ """Workspace ID the field belongs to."""
326
+ workspaceId: ID!
327
+ }
328
+ ```
329
+
330
+ ### `FieldDeletePayload`
331
+
332
+ ```graphql
333
+ """
334
+ Payload returned by `fieldDelete`. Returns `userErrors` when the field is in use.
335
+ """
336
+ type FieldDeletePayload {
337
+ """ID of the deleted field (null when `userErrors` is non-empty)."""
338
+ deletedFieldId: ID
339
+ """Validation errors. Empty array indicates success."""
340
+ userErrors: [FieldDeleteUserError!]!
341
+ }
342
+ ```
343
+
344
+ ### `FieldDeleteUserErrorCode`
345
+
346
+ ```graphql
347
+ """Machine-readable error codes for `fieldDelete`."""
348
+ enum FieldDeleteUserErrorCode {
349
+ """The field is attached to one or more steps and cannot be deleted."""
350
+ IN_USE
351
+ }
352
+ ```
353
+
354
+ ### `FieldDeleteUserError`
355
+
356
+ ```graphql
357
+ """
358
+ A user error from `fieldDelete`. Carries the steps that block the delete when `code` is `IN_USE`.
359
+ """
360
+ type FieldDeleteUserError {
361
+ """Path to the input field that caused the error."""
362
+ field: [String!]
363
+ """Human-readable error message."""
364
+ message: String!
365
+ """Machine-readable error code."""
366
+ code: FieldDeleteUserErrorCode!
367
+ """Steps this field is attached to (present when `code` is `IN_USE`)."""
368
+ referencingSteps: [ReferencingStep!]
369
+ }
370
+ ```
371
+
372
+ ### `ReferencingStep`
373
+
374
+ ```graphql
375
+ """
376
+ A step that has this field attached, preventing its deletion. Returned in `FieldDeleteUserError` when the delete is blocked by usage.
377
+ """
378
+ type ReferencingStep {
379
+ """The step id."""
380
+ id: ID!
381
+ """The step name."""
382
+ name: String!
383
+ }
384
+ ```
385
+
386
+ ### `FieldSortKeys`
387
+
388
+ ```graphql
389
+ """
390
+ Sort keys for `fields(...)`. Pair with `reverse: true` to flip the order (`NAME` + `reverse: false` sorts A→Z; `CREATED_AT` + `reverse: true` is newest-first).
391
+ """
392
+ enum FieldSortKeys {
393
+ """Sort by `name` (alphabetical)."""
394
+ NAME
395
+ """Sort by `createdAt`."""
396
+ CREATED_AT
397
+ """Sort by `updatedAt`."""
398
+ UPDATED_AT
399
+ }
400
+ ```