@rathnasgala2/schemas 3.43.0 → 3.44.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.
@@ -405,7 +405,7 @@ export type BuildInputPublicationNormalized = Readonly<{
405
405
  readonly route: BuildInputCanonicalRoute;
406
406
  }>;
407
407
  readonly recommendations?: ReadonlyArray<BuildInputRecommendation>;
408
- readonly sharing?: BuildInputSharing;
408
+ readonly sharing?: BuildInputResolvedSharing;
409
409
  readonly slug: BuildInputSlug;
410
410
  readonly socialLinks: ReadonlyArray<BuildInputSocialLink>;
411
411
  readonly sourceDigest: BuildInputDigest;
@@ -481,6 +481,29 @@ export type BuildInputResolvedMedia = Readonly<{
481
481
  }> &
482
482
  unknown;
483
483
 
484
+ export type BuildInputResolvedSharing = Readonly<{
485
+ readonly reddit?: Readonly<{
486
+ readonly community: string;
487
+ }>;
488
+ readonly targets: ReadonlyArray<
489
+ | 'copy-link'
490
+ | 'native'
491
+ | 'x'
492
+ | 'bluesky'
493
+ | 'threads'
494
+ | 'linkedin'
495
+ | 'facebook'
496
+ | 'hacker-news'
497
+ | 'whatsapp'
498
+ | 'telegram'
499
+ | 'reddit'
500
+ | 'email'
501
+ >;
502
+ readonly x?: Readonly<{
503
+ readonly via: string;
504
+ }>;
505
+ }>;
506
+
484
507
  export type BuildInputRfc3339 = string;
485
508
 
486
509
  export type BuildInputSemanticTokens = Readonly<{
@@ -502,22 +525,6 @@ export type BuildInputSemver = string;
502
525
 
503
526
  export type BuildInputSemverRange = string;
504
527
 
505
- export type BuildInputSharing = Readonly<{
506
- readonly targets: ReadonlyArray<
507
- | 'copy-link'
508
- | 'native'
509
- | 'x'
510
- | 'bluesky'
511
- | 'linkedin'
512
- | 'facebook'
513
- | 'hacker-news'
514
- | 'whatsapp'
515
- | 'telegram'
516
- | 'reddit'
517
- | 'email'
518
- >;
519
- }>;
520
-
521
528
  export type BuildInputSlug = string;
522
529
 
523
530
  export type BuildInputSocialLink = Readonly<{
@@ -124,6 +124,7 @@ export type PublicationSharing = Readonly<{
124
124
  | 'native'
125
125
  | 'x'
126
126
  | 'bluesky'
127
+ | 'threads'
127
128
  | 'linkedin'
128
129
  | 'facebook'
129
130
  | 'hacker-news'
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": "2.0.0",
3
3
  "sourceDesignRevision": "a53052955ceb6c1aa10c886289dc832eedfe6de0a00004df07d353ac19c4403a",
4
- "openApiDigest": "sha256:c7f738c2ab658e466d32f46a37e25a105b7c68dcf38d8697d2b4c9d7c24762bb",
4
+ "openApiDigest": "sha256:7b04832e11d16fdb13a2d3a4318e2b135d06e8de42967b4a8392b707be852ee3",
5
5
  "operations": [
6
6
  {
7
7
  "operationId": "getInternalHealth",
@@ -3452,6 +3452,19 @@
3452
3452
  "apiKeyScope": null,
3453
3453
  "sourceFragment": "audience"
3454
3454
  },
3455
+ {
3456
+ "operationId": "getPublicSharing",
3457
+ "method": "GET",
3458
+ "path": "/v2/public/sharing",
3459
+ "purpose": "read the platform sharing document",
3460
+ "capabilityKey": null,
3461
+ "conditionalCapabilityKeys": [],
3462
+ "activationGate": "MVP",
3463
+ "assuranceClass": "SESSION",
3464
+ "actionGrant": "none",
3465
+ "apiKeyScope": null,
3466
+ "sourceFragment": "public-interactions"
3467
+ },
3455
3468
  {
3456
3469
  "operationId": "getPublicToday",
3457
3470
  "method": "GET",
@@ -4220,5 +4233,5 @@
4220
4233
  "sourceFragment": "workloads"
4221
4234
  }
4222
4235
  ],
4223
- "digest": "sha256:b24e8862f60e9714e0d29d3d26d32aa01286878afde9add07949ba2cb2a49c88"
4236
+ "digest": "sha256:c2666937dd218c493b22e40ca0ae5068e3c93749f0d0f6374ec1c58401bfb9a7"
4224
4237
  }
@@ -21,6 +21,13 @@ components:
21
21
  - private, no-cache
22
22
  - no-cache, private
23
23
  type: string
24
+ CacheControlPublicMaxAge300:
25
+ description: "SCHEMA-3.44.0: `public, max-age=300` -- a shared cache or browser may reuse the body for five minutes."
26
+ required: true
27
+ schema:
28
+ pattern: ^public, max-age=300$
29
+ type: string
30
+ x-gala-const: public, max-age=300
24
31
  ContentDispositionAttachment:
25
32
  description: "The archive is a download: `attachment` with its file name."
26
33
  required: true
@@ -5667,6 +5674,8 @@ components:
5667
5674
  - origin
5668
5675
  - publicBaseUrl
5669
5676
  type: object
5677
+ GetPublicSharingResponse:
5678
+ $ref: "#/components/schemas/PublicSharingDocument"
5670
5679
  GetPublicTodayResponse:
5671
5680
  $ref: "#/components/schemas/PublicTodayDrop"
5672
5681
  GetPublicTodayTopicsResponse:
@@ -17773,7 +17782,7 @@ components:
17773
17782
  maximum: 512
17774
17783
  PortablePublicationSharing:
17775
17784
  additionalProperties: false
17776
- description: "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 11 unique members of the closed target set. An absent `sharing` member means `[\"copy-link\"]` (the Copy link button only); an empty `targets` array means no share buttons. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
17785
+ description: "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 12 unique members of the closed target set; an empty `targets` array means no share buttons. SCHEMA-3.44.0: an absent `sharing` member now means the platform's default share set, resolved at build time by the toolchain from `GET /v2/public/sharing` (it was the Copy link button only); a present `targets` is the site's own ordered list. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
17777
17786
  properties:
17778
17787
  targets:
17779
17788
  items:
@@ -17782,6 +17791,7 @@ components:
17782
17791
  - native
17783
17792
  - x
17784
17793
  - bluesky
17794
+ - threads
17785
17795
  - linkedin
17786
17796
  - facebook
17787
17797
  - hacker-news
@@ -17789,7 +17799,7 @@ components:
17789
17799
  - telegram
17790
17800
  - reddit
17791
17801
  - email
17792
- maxItems: 11
17802
+ maxItems: 12
17793
17803
  minItems: 0
17794
17804
  type: array
17795
17805
  uniqueItems: true
@@ -21482,6 +21492,73 @@ components:
21482
21492
  - count
21483
21493
  - viewerActive
21484
21494
  type: object
21495
+ PublicSharingDocument:
21496
+ additionalProperties: false
21497
+ description: "SCHEMA-3.44.0: the platform sharing document. `networks` is the ordered catalogue of share targets the platform offers; `defaults` is the subset an undecided site shows (a site with no `sharing` member); `reddit.community` is the subreddit name without `r/` (empty means plain submit); `x.via` is the X handle without `@` appended as `via=` (empty means none)."
21498
+ properties:
21499
+ defaults:
21500
+ items:
21501
+ enum:
21502
+ - copy-link
21503
+ - native
21504
+ - x
21505
+ - bluesky
21506
+ - threads
21507
+ - linkedin
21508
+ - facebook
21509
+ - hacker-news
21510
+ - reddit
21511
+ - whatsapp
21512
+ - telegram
21513
+ - email
21514
+ type: string
21515
+ maxItems: 12
21516
+ type: array
21517
+ uniqueItems: true
21518
+ networks:
21519
+ items:
21520
+ enum:
21521
+ - copy-link
21522
+ - native
21523
+ - x
21524
+ - bluesky
21525
+ - threads
21526
+ - linkedin
21527
+ - facebook
21528
+ - hacker-news
21529
+ - reddit
21530
+ - whatsapp
21531
+ - telegram
21532
+ - email
21533
+ type: string
21534
+ maxItems: 12
21535
+ minItems: 1
21536
+ type: array
21537
+ uniqueItems: true
21538
+ reddit:
21539
+ additionalProperties: false
21540
+ properties:
21541
+ community:
21542
+ pattern: ^[A-Za-z0-9_]{0,21}$
21543
+ type: string
21544
+ required:
21545
+ - community
21546
+ type: object
21547
+ x:
21548
+ additionalProperties: false
21549
+ properties:
21550
+ via:
21551
+ pattern: ^[A-Za-z0-9_]{0,15}$
21552
+ type: string
21553
+ required:
21554
+ - via
21555
+ type: object
21556
+ required:
21557
+ - networks
21558
+ - defaults
21559
+ - reddit
21560
+ - x
21561
+ type: object
21485
21562
  PublicTodayDrop:
21486
21563
  additionalProperties: false
21487
21564
  description: "SCHEMA-3.43.0: the network-wide drop for one UTC day, the same for every visitor; no personal signal is used."
@@ -24147,6 +24224,7 @@ components:
24147
24224
  - native
24148
24225
  - x
24149
24226
  - bluesky
24227
+ - threads
24150
24228
  - linkedin
24151
24229
  - facebook
24152
24230
  - hacker-news
@@ -24156,10 +24234,10 @@ components:
24156
24234
  - email
24157
24235
  type: string
24158
24236
  SharingTargets:
24159
- description: "SCHEMA-3.23.0: the ordered share buttons, 0 to 11 distinct targets. An empty list shows no share buttons."
24237
+ description: "SCHEMA-3.23.0: the ordered share buttons, 0 to 12 distinct targets. An empty list shows no share buttons."
24160
24238
  items:
24161
24239
  $ref: "#/components/schemas/SharingTarget"
24162
- maxItems: 11
24240
+ maxItems: 12
24163
24241
  type: array
24164
24242
  uniqueItems: true
24165
24243
  SiteActor:
@@ -82281,6 +82359,76 @@ paths:
82281
82359
  - NONE
82282
82360
  x-gala-success-category: async
82283
82361
  x-gala-tenant-scope: NONE
82362
+ /v2/public/sharing:
82363
+ get:
82364
+ description: "The platform sharing document, with no authentication: the share targets the platform offers, the default set for a site that has not chosen its own, and the Reddit community and X handle used in share links. The toolchain reads it at build time. Answered with `Cache-Control: public, max-age=300`."
82365
+ operationId: getPublicSharing
82366
+ parameters:
82367
+ - $ref: "#/components/parameters/XCorrelationId"
82368
+ responses:
82369
+ "200":
82370
+ content:
82371
+ application/json:
82372
+ examples:
82373
+ nominal:
82374
+ summary: Nominal successful response
82375
+ value:
82376
+ defaults:
82377
+ - copy-link
82378
+ - x
82379
+ - bluesky
82380
+ - threads
82381
+ - linkedin
82382
+ - facebook
82383
+ - hacker-news
82384
+ - reddit
82385
+ - whatsapp
82386
+ - telegram
82387
+ - email
82388
+ networks:
82389
+ - copy-link
82390
+ - native
82391
+ - x
82392
+ - bluesky
82393
+ - threads
82394
+ - linkedin
82395
+ - facebook
82396
+ - hacker-news
82397
+ - reddit
82398
+ - whatsapp
82399
+ - telegram
82400
+ - email
82401
+ reddit:
82402
+ community: Galascribe
82403
+ x:
82404
+ via: ""
82405
+ schema:
82406
+ $ref: "#/components/schemas/GetPublicSharingResponse"
82407
+ description: read the platform sharing document succeeded
82408
+ headers:
82409
+ Cache-Control:
82410
+ $ref: "#/components/headers/CacheControlPublicMaxAge300"
82411
+ X-Correlation-Id:
82412
+ $ref: "#/components/headers/XCorrelationId"
82413
+ security: []
82414
+ summary: read the platform sharing document
82415
+ tags:
82416
+ - public-interactions
82417
+ x-gala-activation-gate: MVP
82418
+ x-gala-activation-guards:
82419
+ - NONE
82420
+ x-gala-capability-key: null
82421
+ x-gala-concurrency: none
82422
+ x-gala-conditional-capabilities: []
82423
+ x-gala-example-profile: NOMINAL_SUCCESS_AND_EACH_REACHABLE_PROBLEM
82424
+ x-gala-nullability: required-and-nullable-are-explicit
82425
+ x-gala-purpose: read the platform sharing document
82426
+ x-gala-reachable-problems: []
82427
+ x-gala-replay-identity: safe-query
82428
+ x-gala-state-guards:
82429
+ - NONE
82430
+ x-gala-success-category: query
82431
+ x-gala-tenant-scope: NONE
82284
82432
  /v2/public/today:
82285
82433
  get:
82286
82434
  description: The network-wide drop for the current UTC day, identical for every visitor and computed once at the platform drop hour. `404 TODAY_NOT_PUBLIC` while Today is off or fewer eligible publications have posts in the window than the launch threshold.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rathnasgala2/schemas",
3
- "version": "3.43.0",
3
+ "version": "3.44.0",
4
4
  "description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
package/sbom.cdx.json CHANGED
@@ -97,8 +97,8 @@
97
97
  "type": "library",
98
98
  "name": "schemas",
99
99
  "group": "@rathnasgala2",
100
- "version": "3.43.0",
101
- "bom-ref": "@rathnasgala2/schemas@3.43.0",
100
+ "version": "3.44.0",
101
+ "bom-ref": "@rathnasgala2/schemas@3.44.0",
102
102
  "description": "Executable JSON Schema and OpenAPI contracts for Galascribe",
103
103
  "licenses": [
104
104
  {
@@ -108,7 +108,7 @@
108
108
  }
109
109
  }
110
110
  ],
111
- "purl": "pkg:npm/%40rathnasgala2/schemas@3.43.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Frathnasgala2%2Fschema.git",
111
+ "purl": "pkg:npm/%40rathnasgala2/schemas@3.44.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Frathnasgala2%2Fschema.git",
112
112
  "externalReferences": [
113
113
  {
114
114
  "url": "https://github.com/rathnasgala2/schema/issues",
@@ -153,7 +153,7 @@
153
153
  "type": "library",
154
154
  "name": "ajv-formats",
155
155
  "version": "3.0.1",
156
- "bom-ref": "@rathnasgala2/schemas@3.43.0|ajv-formats@3.0.1",
156
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|ajv-formats@3.0.1",
157
157
  "licenses": [
158
158
  {
159
159
  "license": {
@@ -187,7 +187,7 @@
187
187
  "type": "library",
188
188
  "name": "ajv",
189
189
  "version": "8.20.0",
190
- "bom-ref": "@rathnasgala2/schemas@3.43.0|ajv@8.20.0",
190
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|ajv@8.20.0",
191
191
  "licenses": [
192
192
  {
193
193
  "license": {
@@ -221,7 +221,7 @@
221
221
  "type": "library",
222
222
  "name": "fast-deep-equal",
223
223
  "version": "3.1.3",
224
- "bom-ref": "@rathnasgala2/schemas@3.43.0|fast-deep-equal@3.1.3",
224
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|fast-deep-equal@3.1.3",
225
225
  "licenses": [
226
226
  {
227
227
  "license": {
@@ -255,7 +255,7 @@
255
255
  "type": "library",
256
256
  "name": "fast-uri",
257
257
  "version": "3.1.8",
258
- "bom-ref": "@rathnasgala2/schemas@3.43.0|fast-uri@3.1.8",
258
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|fast-uri@3.1.8",
259
259
  "licenses": [
260
260
  {
261
261
  "license": {
@@ -289,7 +289,7 @@
289
289
  "type": "library",
290
290
  "name": "json-schema-traverse",
291
291
  "version": "1.0.0",
292
- "bom-ref": "@rathnasgala2/schemas@3.43.0|json-schema-traverse@1.0.0",
292
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|json-schema-traverse@1.0.0",
293
293
  "licenses": [
294
294
  {
295
295
  "license": {
@@ -323,7 +323,7 @@
323
323
  "type": "library",
324
324
  "name": "require-from-string",
325
325
  "version": "2.0.2",
326
- "bom-ref": "@rathnasgala2/schemas@3.43.0|require-from-string@2.0.2",
326
+ "bom-ref": "@rathnasgala2/schemas@3.44.0|require-from-string@2.0.2",
327
327
  "licenses": [
328
328
  {
329
329
  "license": {
@@ -1064,10 +1064,10 @@
1064
1064
  ],
1065
1065
  "dependencies": [
1066
1066
  {
1067
- "ref": "@rathnasgala2/schemas@3.43.0",
1067
+ "ref": "@rathnasgala2/schemas@3.44.0",
1068
1068
  "dependsOn": [
1069
- "@rathnasgala2/schemas@3.43.0|ajv-formats@3.0.1",
1070
- "@rathnasgala2/schemas@3.43.0|ajv@8.20.0",
1069
+ "@rathnasgala2/schemas@3.44.0|ajv-formats@3.0.1",
1070
+ "@rathnasgala2/schemas@3.44.0|ajv@8.20.0",
1071
1071
  "pkg:npm/semver@7.8.5",
1072
1072
  "urn:gala:source-data:iana-ipv4-special-registry",
1073
1073
  "urn:gala:source-data:iana-ipv6-special-registry",
@@ -1089,31 +1089,31 @@
1089
1089
  ]
1090
1090
  },
1091
1091
  {
1092
- "ref": "@rathnasgala2/schemas@3.43.0|ajv-formats@3.0.1",
1092
+ "ref": "@rathnasgala2/schemas@3.44.0|ajv-formats@3.0.1",
1093
1093
  "dependsOn": [
1094
- "@rathnasgala2/schemas@3.43.0|ajv@8.20.0"
1094
+ "@rathnasgala2/schemas@3.44.0|ajv@8.20.0"
1095
1095
  ]
1096
1096
  },
1097
1097
  {
1098
- "ref": "@rathnasgala2/schemas@3.43.0|ajv@8.20.0",
1098
+ "ref": "@rathnasgala2/schemas@3.44.0|ajv@8.20.0",
1099
1099
  "dependsOn": [
1100
- "@rathnasgala2/schemas@3.43.0|fast-deep-equal@3.1.3",
1101
- "@rathnasgala2/schemas@3.43.0|fast-uri@3.1.8",
1102
- "@rathnasgala2/schemas@3.43.0|json-schema-traverse@1.0.0",
1103
- "@rathnasgala2/schemas@3.43.0|require-from-string@2.0.2"
1100
+ "@rathnasgala2/schemas@3.44.0|fast-deep-equal@3.1.3",
1101
+ "@rathnasgala2/schemas@3.44.0|fast-uri@3.1.8",
1102
+ "@rathnasgala2/schemas@3.44.0|json-schema-traverse@1.0.0",
1103
+ "@rathnasgala2/schemas@3.44.0|require-from-string@2.0.2"
1104
1104
  ]
1105
1105
  },
1106
1106
  {
1107
- "ref": "@rathnasgala2/schemas@3.43.0|fast-deep-equal@3.1.3"
1107
+ "ref": "@rathnasgala2/schemas@3.44.0|fast-deep-equal@3.1.3"
1108
1108
  },
1109
1109
  {
1110
- "ref": "@rathnasgala2/schemas@3.43.0|fast-uri@3.1.8"
1110
+ "ref": "@rathnasgala2/schemas@3.44.0|fast-uri@3.1.8"
1111
1111
  },
1112
1112
  {
1113
- "ref": "@rathnasgala2/schemas@3.43.0|json-schema-traverse@1.0.0"
1113
+ "ref": "@rathnasgala2/schemas@3.44.0|json-schema-traverse@1.0.0"
1114
1114
  },
1115
1115
  {
1116
- "ref": "@rathnasgala2/schemas@3.43.0|require-from-string@2.0.2"
1116
+ "ref": "@rathnasgala2/schemas@3.44.0|require-from-string@2.0.2"
1117
1117
  },
1118
1118
  {
1119
1119
  "ref": "pkg:npm/semver@7.8.5"
@@ -545,7 +545,7 @@
545
545
  "aiRights": { "$ref": "#/$defs/aiRights" },
546
546
  "performance": { "$ref": "#/$defs/performance" },
547
547
  "newsletter": { "$ref": "#/$defs/newsletter" },
548
- "sharing": { "$ref": "#/$defs/sharing" },
548
+ "sharing": { "$ref": "#/$defs/resolvedSharing" },
549
549
  "contactForm": { "$ref": "#/$defs/contactFormNormalized" },
550
550
  "listen": {
551
551
  "$ref": "#/$defs/listen",
@@ -619,7 +619,7 @@
619
619
  }
620
620
  ]
621
621
  },
622
- "sharing": {
622
+ "resolvedSharing": {
623
623
  "type": "object",
624
624
  "required": ["targets"],
625
625
  "properties": {
@@ -631,6 +631,7 @@
631
631
  "native",
632
632
  "x",
633
633
  "bluesky",
634
+ "threads",
634
635
  "linkedin",
635
636
  "facebook",
636
637
  "hacker-news",
@@ -641,12 +642,28 @@
641
642
  ]
642
643
  },
643
644
  "minItems": 0,
644
- "maxItems": 11,
645
+ "maxItems": 12,
645
646
  "uniqueItems": true
647
+ },
648
+ "reddit": {
649
+ "type": "object",
650
+ "required": ["community"],
651
+ "properties": {
652
+ "community": { "type": "string", "pattern": "^[A-Za-z0-9_]{0,21}$" }
653
+ },
654
+ "additionalProperties": false
655
+ },
656
+ "x": {
657
+ "type": "object",
658
+ "required": ["via"],
659
+ "properties": {
660
+ "via": { "type": "string", "pattern": "^[A-Za-z0-9_]{0,15}$" }
661
+ },
662
+ "additionalProperties": false
646
663
  }
647
664
  },
648
665
  "additionalProperties": false,
649
- "description": "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 11 unique members of the closed target set. An absent `sharing` member means `[\"copy-link\"]` (the Copy link button only); an empty `targets` array means no share buttons. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
666
+ "description": "SCHEMA-3.44.0: the share buttons shown on each article. `targets` is the display order and is already resolved by the toolchain: the site's own list intersected with the platform catalogue, or the platform default share set when the site sets none (0 to 12 unique members of the closed target set). Optional `reddit.community` (subreddit name without `r/`; empty means plain submit) and `x.via` (X handle without `@`; empty means none) are copied from the platform."
650
667
  },
651
668
  "listing": {
652
669
  "type": "object",
@@ -369,6 +369,7 @@
369
369
  "native",
370
370
  "x",
371
371
  "bluesky",
372
+ "threads",
372
373
  "linkedin",
373
374
  "facebook",
374
375
  "hacker-news",
@@ -379,12 +380,12 @@
379
380
  ]
380
381
  },
381
382
  "minItems": 0,
382
- "maxItems": 11,
383
+ "maxItems": 12,
383
384
  "uniqueItems": true
384
385
  }
385
386
  },
386
387
  "additionalProperties": false,
387
- "description": "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 11 unique members of the closed target set. An absent `sharing` member means `[\"copy-link\"]` (the Copy link button only); an empty `targets` array means no share buttons. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
388
+ "description": "SCHEMA-3.22.0: the share buttons shown on each article. `targets` is the display order: 0 to 12 unique members of the closed target set; an empty `targets` array means no share buttons. SCHEMA-3.44.0: an absent `sharing` member now means the platform's default share set, resolved at build time by the toolchain from `GET /v2/public/sharing` (it was the Copy link button only); a present `targets` is the site's own ordered list. `native` is shown only where the browser offers the system share sheet; every other target is a plain link to that service's documented share URL. Bookmark is not a share target and is unaffected."
388
389
  },
389
390
  "contactForm": {
390
391
  "type": "object",