@gregiteen/ssss-cli 0.14.2 → 0.14.3

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.
@@ -1,1115 +0,0 @@
1
- {
2
- "$schema": "https://ssss.dev/registry/v1",
3
- "conformance": "A festech-conformant host MUST resolve portability for these primitives from this registry. The `resource_bound` primitives MUST ship only a requirement declaration (never the seller's bound value) in a template/sale export; the `tenant_private` primitives MUST be dropped from template/sale entirely (\u00a75.5).",
4
- "description": "Festech extension registry. Defines the host-specific primitives that festech.live layers on top of the SSSS core (registry/core.json). Lifted from festech's docs/ssss/primitive-registry.json and assigned a portability class (\u00a75.5) so a festech workspace can be exported as a backup/template/sale bundle. Core primitives (assistant, workflow, rule, security_role, skill, model, memory, task, conversation, run, conflict, page, migration, release) are NOT redefined here \u2014 they are governed by core.json. An extension MUST NOT redefine a core type. Derived from the Festech application registry (docs/ssss/primitive-registry.json, 198 primitives); the 73 types observed in live vault data are declared here.",
5
- "document_primitives": {
6
- "ai_integration": {
7
- "append_only": false,
8
- "canonical_path": "integrations/ai.md",
9
- "family": "record",
10
- "portability": "tenant_private",
11
- "projection_strategy": "replace",
12
- "required_fields": [
13
- "type",
14
- "use_platform_tokens"
15
- ]
16
- },
17
- "asset_share": {
18
- "append_only": false,
19
- "canonical_path": "asset_shares/<id>.md",
20
- "family": "record",
21
- "notes": "A time-limited share link for a festech file asset. Holds a bearer token, so it never travels in a template/sale export.",
22
- "portability": "resource_bound",
23
- "required_fields": [
24
- "type",
25
- "id",
26
- "token",
27
- "asset_id"
28
- ]
29
- },
30
- "audit_log": {
31
- "append_only": true,
32
- "canonical_path": "audit/logs/<year-month>/<audit-id>.md",
33
- "family": "record",
34
- "portability": "tenant_private",
35
- "projection_strategy": "append_only_log",
36
- "required_fields": [
37
- "action",
38
- "entity_id",
39
- "entity_type",
40
- "type"
41
- ]
42
- },
43
- "automation": {
44
- "append_only": false,
45
- "canonical_path": "automations/<slug>.md",
46
- "family": "record",
47
- "notes": "App registry marks triggers required but they are absent in some live documents; not enforced.",
48
- "portability": "tenant_private",
49
- "projection_strategy": "vfs_event_router",
50
- "required_fields": [
51
- "name",
52
- "type"
53
- ]
54
- },
55
- "benefit-fulfillment": {
56
- "append_only": false,
57
- "canonical_path": "crm/fulfillments/<id>.md",
58
- "family": "record",
59
- "portability": "tenant_private",
60
- "projection_strategy": "vfs_event_router",
61
- "required_fields": [
62
- "benefit_id",
63
- "partnership_id",
64
- "status",
65
- "type"
66
- ]
67
- },
68
- "call_log": {
69
- "append_only": true,
70
- "canonical_path": "comms/calls/<slug>.md",
71
- "family": "record",
72
- "portability": "tenant_private",
73
- "projection_strategy": "insert_only",
74
- "required_fields": [
75
- "direction",
76
- "phone_number",
77
- "status",
78
- "type"
79
- ]
80
- },
81
- "channel": {
82
- "append_only": false,
83
- "canonical_path": "channels/<slug>.md",
84
- "family": "record",
85
- "portability": "tenant_private",
86
- "required_fields": [
87
- "type"
88
- ]
89
- },
90
- "channel_membership": {
91
- "append_only": false,
92
- "canonical_path": "channel_memberships/<id>.md",
93
- "family": "record",
94
- "portability": "tenant_private",
95
- "required_fields": [
96
- "id",
97
- "type"
98
- ]
99
- },
100
- "chat_message": {
101
- "append_only": true,
102
- "canonical_path": "chat_messages/<slug>.md",
103
- "family": "record",
104
- "portability": "tenant_private",
105
- "projection_strategy": "append",
106
- "required_fields": [
107
- "sender_id",
108
- "thread_id",
109
- "type"
110
- ]
111
- },
112
- "chat_thread": {
113
- "append_only": false,
114
- "canonical_path": "chat_threads/<slug>.md",
115
- "family": "record",
116
- "portability": "tenant_private",
117
- "projection_strategy": "replace",
118
- "required_fields": [
119
- "participant_a",
120
- "type"
121
- ]
122
- },
123
- "collective": {
124
- "append_only": false,
125
- "canonical_path": "collective.md",
126
- "family": "record",
127
- "portability": "tenant_private",
128
- "projection_strategy": "replace",
129
- "required_fields": [
130
- "name",
131
- "slug",
132
- "type"
133
- ]
134
- },
135
- "contact": {
136
- "append_only": false,
137
- "canonical_path": "crm/contacts/<slug>.md",
138
- "family": "record",
139
- "portability": "tenant_private",
140
- "projection_strategy": "vfs_event_router",
141
- "required_fields": [
142
- "first_name",
143
- "type"
144
- ]
145
- },
146
- "contract": {
147
- "append_only": false,
148
- "canonical_path": "contracts/<id>.md",
149
- "family": "record",
150
- "portability": "tenant_private",
151
- "projection_strategy": "replace",
152
- "required_fields": [
153
- "contractor_contact_id",
154
- "title",
155
- "type"
156
- ]
157
- },
158
- "crm_referral": {
159
- "append_only": false,
160
- "canonical_path": "crm_referrals/<id>.md",
161
- "family": "record",
162
- "portability": "tenant_private",
163
- "required_fields": [
164
- "id",
165
- "type"
166
- ]
167
- },
168
- "design": {
169
- "append_only": false,
170
- "canonical_path": "design-profiles/<id>/DESIGN.md",
171
- "family": "record",
172
- "portability": "tenant_private",
173
- "projection_strategy": "vfs_event_router",
174
- "required_fields": [
175
- "type"
176
- ]
177
- },
178
- "design_system": {
179
- "append_only": false,
180
- "canonical_path": "design_system.md",
181
- "family": "record",
182
- "portability": "tenant_private",
183
- "projection_strategy": "replace",
184
- "required_fields": [
185
- "type"
186
- ]
187
- },
188
- "document": {
189
- "append_only": false,
190
- "canonical_path": "documents/<id>.md",
191
- "family": "record",
192
- "portability": "tenant_private",
193
- "projection_strategy": "none",
194
- "required_fields": [
195
- "type"
196
- ]
197
- },
198
- "domain": {
199
- "append_only": false,
200
- "canonical_path": "domains/<domain>.md",
201
- "family": "resource",
202
- "notes": "The seller's domain is NEVER transferred. In template/sale the bundle declares 'this business needs a domain'; the buyer binds their own at provision (\u00a716).",
203
- "portability": "resource_bound",
204
- "required_fields": [
205
- "type",
206
- "domain_name",
207
- "registrar",
208
- "status",
209
- "payment_status"
210
- ],
211
- "resource": {
212
- "binds": [
213
- "domain_name",
214
- "registrar"
215
- ],
216
- "kind": "domain",
217
- "provision_relation": "owns_domain"
218
- }
219
- },
220
- "email_domain": {
221
- "append_only": false,
222
- "canonical_path": "communications/email/domains/<domain>.md",
223
- "family": "record",
224
- "portability": "tenant_private",
225
- "projection_strategy": "vfs_event_router",
226
- "required_fields": [
227
- "domain",
228
- "status",
229
- "type"
230
- ]
231
- },
232
- "email_mailbox": {
233
- "append_only": false,
234
- "canonical_path": "communications/email/mailboxes/<email>.md",
235
- "family": "record",
236
- "portability": "tenant_private",
237
- "projection_strategy": "vfs_event_router",
238
- "required_fields": [
239
- "active",
240
- "domain_id",
241
- "email",
242
- "quota",
243
- "type"
244
- ]
245
- },
246
- "event": {
247
- "append_only": false,
248
- "canonical_path": "events/<slug>.md",
249
- "family": "record",
250
- "portability": "tenant_private",
251
- "projection_strategy": "vfs_event_router",
252
- "required_fields": [
253
- "event_type",
254
- "type"
255
- ]
256
- },
257
- "event_artist": {
258
- "append_only": false,
259
- "canonical_path": "events/<event-slug>/artists/<artist-slug>.md",
260
- "family": "record",
261
- "portability": "tenant_private",
262
- "projection_strategy": "vfs_event_router",
263
- "required_fields": [
264
- "artist_name",
265
- "event_slug",
266
- "status",
267
- "type"
268
- ]
269
- },
270
- "event_asset": {
271
- "append_only": false,
272
- "canonical_path": "events/<event-slug>/assets/<slug>.md",
273
- "family": "record",
274
- "portability": "tenant_private",
275
- "projection_strategy": "vfs_event_router",
276
- "required_fields": [
277
- "asset_category",
278
- "file_name",
279
- "file_type",
280
- "file_url",
281
- "type"
282
- ]
283
- },
284
- "event_faq": {
285
- "append_only": false,
286
- "canonical_path": "event_faqs/<slug>.md",
287
- "family": "record",
288
- "portability": "tenant_private",
289
- "projection_strategy": "replace",
290
- "required_fields": [
291
- "answer",
292
- "event_id",
293
- "question",
294
- "type"
295
- ]
296
- },
297
- "event_inventory": {
298
- "append_only": false,
299
- "canonical_path": "events/<event-slug>/inventory/<booking-id>.md",
300
- "family": "record",
301
- "portability": "tenant_private",
302
- "projection_strategy": "vfs_event_router",
303
- "required_fields": [
304
- "event_slug",
305
- "item_name",
306
- "status",
307
- "type"
308
- ]
309
- },
310
- "event_marketing_campaign": {
311
- "append_only": false,
312
- "canonical_path": "events/<event_slug>/marketing/<slug>.md",
313
- "family": "record",
314
- "portability": "tenant_private",
315
- "projection_strategy": "upsert_on_id",
316
- "required_fields": [
317
- "campaign_name",
318
- "channel",
319
- "status",
320
- "type"
321
- ]
322
- },
323
- "event_message": {
324
- "append_only": false,
325
- "canonical_path": "event_messages/<slug>.md",
326
- "family": "record",
327
- "portability": "tenant_private",
328
- "projection_strategy": "replace",
329
- "required_fields": [
330
- "author_name",
331
- "event_id",
332
- "type"
333
- ]
334
- },
335
- "event_sponsor": {
336
- "append_only": false,
337
- "canonical_path": "events/<event-slug>/sponsors/<sponsor-slug>.md",
338
- "family": "record",
339
- "portability": "tenant_private",
340
- "projection_strategy": "vfs_event_router",
341
- "required_fields": [
342
- "event_slug",
343
- "name",
344
- "status",
345
- "type"
346
- ]
347
- },
348
- "extension": {
349
- "append_only": false,
350
- "canonical_path": "extensions/<id>.md",
351
- "family": "capability",
352
- "notes": "Which extensions a workspace has installed is part of the business model and ships in a sale.",
353
- "portability": "structural",
354
- "required_fields": [
355
- "type",
356
- "extension",
357
- "display_name",
358
- "status"
359
- ]
360
- },
361
- "favorite": {
362
- "append_only": false,
363
- "canonical_path": "favorites/<id>.md",
364
- "family": "record",
365
- "portability": "tenant_private",
366
- "required_fields": [
367
- "id",
368
- "type"
369
- ]
370
- },
371
- "file_asset": {
372
- "append_only": false,
373
- "canonical_path": "assets/<id>.md",
374
- "family": "asset",
375
- "notes": "Festech's uploaded-file record: points at an object via `file_upload`/`filename`. Distinct from core `ssss:asset` (a text-encoded payload) and from `media_asset` (brand assets under media/assets/).",
376
- "portability": "resource_bound",
377
- "required_fields": [
378
- "type",
379
- "slug",
380
- "asset_id"
381
- ],
382
- "resource": {
383
- "binds": [
384
- "file_upload"
385
- ],
386
- "kind": "storage",
387
- "provision_relation": "stores_asset"
388
- }
389
- },
390
- "grant_application": {
391
- "append_only": false,
392
- "canonical_path": "grants/<id>.md",
393
- "family": "record",
394
- "portability": "tenant_private",
395
- "projection_strategy": "none",
396
- "required_fields": [
397
- "funder_name",
398
- "grant_title",
399
- "status",
400
- "type"
401
- ]
402
- },
403
- "integration_connection": {
404
- "append_only": false,
405
- "canonical_path": "integrations/<provider>.md",
406
- "family": "resource",
407
- "notes": "Carries credentials/tokens to a third-party provider \u2014 the seller's connection value MUST be stripped; the buyer supplies their own at provision.",
408
- "portability": "resource_bound",
409
- "required_fields": [
410
- "type",
411
- "provider",
412
- "status",
413
- "capabilities",
414
- "verified_at"
415
- ],
416
- "resource": {
417
- "binds": [
418
- "provider"
419
- ],
420
- "kind": "api_connection",
421
- "provision_relation": "connects_to"
422
- }
423
- },
424
- "inventory_category": {
425
- "append_only": false,
426
- "canonical_path": "inventory_categorys/<id>.md",
427
- "family": "record",
428
- "portability": "tenant_private",
429
- "required_fields": [
430
- "id",
431
- "type"
432
- ]
433
- },
434
- "inventory_checkout": {
435
- "append_only": false,
436
- "canonical_path": "inventory_checkouts/<id>.md",
437
- "family": "record",
438
- "portability": "tenant_private",
439
- "required_fields": [
440
- "id",
441
- "type"
442
- ]
443
- },
444
- "inventory_condition": {
445
- "append_only": false,
446
- "canonical_path": "inventory_conditions/<id>.md",
447
- "family": "record",
448
- "portability": "tenant_private",
449
- "required_fields": [
450
- "id",
451
- "type"
452
- ]
453
- },
454
- "inventory_item": {
455
- "append_only": false,
456
- "canonical_path": "inventory/<slug>.md",
457
- "family": "record",
458
- "portability": "tenant_private",
459
- "projection_strategy": "replace",
460
- "required_fields": [
461
- "name",
462
- "slug",
463
- "status",
464
- "type"
465
- ]
466
- },
467
- "inventory_location": {
468
- "append_only": false,
469
- "canonical_path": "inventory_locations/<id>.md",
470
- "family": "record",
471
- "portability": "tenant_private",
472
- "required_fields": [
473
- "id",
474
- "type"
475
- ]
476
- },
477
- "inventory_review": {
478
- "append_only": true,
479
- "canonical_path": "inventory/reviews/<id>.md",
480
- "family": "record",
481
- "portability": "tenant_private",
482
- "projection_strategy": "vfs_event_router",
483
- "required_fields": [
484
- "item_id",
485
- "rating",
486
- "reviewer_name",
487
- "type"
488
- ]
489
- },
490
- "inventory_stock_level": {
491
- "append_only": false,
492
- "canonical_path": "inventory/stock_levels/<id>.md",
493
- "family": "record",
494
- "portability": "tenant_private",
495
- "projection_strategy": "vfs_event_router",
496
- "required_fields": [
497
- "quantity",
498
- "type",
499
- "variant_id"
500
- ]
501
- },
502
- "inventory_transaction": {
503
- "append_only": true,
504
- "canonical_path": "inventory/transactions/<id>.md",
505
- "family": "record",
506
- "portability": "tenant_private",
507
- "projection_strategy": "vfs_event_router",
508
- "required_fields": [
509
- "quantity",
510
- "type",
511
- "variant_id"
512
- ]
513
- },
514
- "inventory_variant": {
515
- "append_only": false,
516
- "canonical_path": "inventory/variants/<id>.md",
517
- "family": "record",
518
- "portability": "tenant_private",
519
- "projection_strategy": "vfs_event_router",
520
- "required_fields": [
521
- "item_id",
522
- "name",
523
- "sku",
524
- "type"
525
- ]
526
- },
527
- "invoice": {
528
- "append_only": false,
529
- "canonical_path": "finance/invoices/<id>.md",
530
- "family": "record",
531
- "portability": "tenant_private",
532
- "projection_strategy": "replace",
533
- "required_fields": [
534
- "status",
535
- "total",
536
- "type"
537
- ]
538
- },
539
- "invoice_item": {
540
- "append_only": false,
541
- "canonical_path": "finance/invoices/<invoice_id>/items/<id>.md",
542
- "family": "record",
543
- "portability": "tenant_private",
544
- "projection_strategy": "none",
545
- "required_fields": [
546
- "amount_cents",
547
- "description",
548
- "id",
549
- "invoice_id",
550
- "type"
551
- ]
552
- },
553
- "ip-contributor": {
554
- "append_only": false,
555
- "canonical_path": "ip-contributors/<id>.md",
556
- "family": "record",
557
- "portability": "tenant_private",
558
- "projection_strategy": "replace",
559
- "required_fields": [
560
- "contact_id",
561
- "share_percentage",
562
- "type",
563
- "work_id"
564
- ]
565
- },
566
- "ip-work": {
567
- "append_only": false,
568
- "canonical_path": "ip-works/<id>.md",
569
- "family": "record",
570
- "portability": "tenant_private",
571
- "projection_strategy": "replace",
572
- "required_fields": [
573
- "owner_contact_id",
574
- "type",
575
- "work_type"
576
- ]
577
- },
578
- "ip_usage_log": {
579
- "append_only": false,
580
- "canonical_path": "ip_usage_logs/<id>.md",
581
- "family": "record",
582
- "portability": "tenant_private",
583
- "required_fields": [
584
- "id",
585
- "type"
586
- ]
587
- },
588
- "knowledge": {
589
- "append_only": false,
590
- "canonical_path": "knowledge/<slug>.md",
591
- "family": "knowledge",
592
- "notes": "The curated knowledge base is a core sellable asset of the business model.",
593
- "portability": "structural",
594
- "required_fields": [
595
- "type",
596
- "name",
597
- "slug"
598
- ]
599
- },
600
- "knowledge_source": {
601
- "append_only": false,
602
- "canonical_path": "knowledge/<knowledge-slug>/sources/<slug>.md",
603
- "family": "knowledge",
604
- "notes": "A source backing a structural knowledge base. A source ingesting private customer documents SHOULD override with x_portability: tenant_private.",
605
- "portability": "structural",
606
- "required_fields": [
607
- "type",
608
- "title",
609
- "knowledge_base_slug"
610
- ]
611
- },
612
- "language_convention": {
613
- "append_only": false,
614
- "canonical_path": "languages/<locale>/CONVENTION.md",
615
- "family": "localization",
616
- "portability": "structural",
617
- "required_fields": [
618
- "type",
619
- "locale",
620
- "language_name",
621
- "keys"
622
- ]
623
- },
624
- "legal_policy": {
625
- "append_only": false,
626
- "canonical_path": "contracts/<id>.md",
627
- "family": "governance",
628
- "portability": "structural",
629
- "required_fields": [
630
- "type",
631
- "title",
632
- "version",
633
- "effective_date",
634
- "policy_type"
635
- ]
636
- },
637
- "lost_found_item": {
638
- "append_only": false,
639
- "canonical_path": "lost_found_items/<slug>.md",
640
- "family": "record",
641
- "portability": "tenant_private",
642
- "projection_strategy": "replace",
643
- "required_fields": [
644
- "category",
645
- "description",
646
- "type"
647
- ]
648
- },
649
- "media_asset": {
650
- "append_only": false,
651
- "canonical_path": "media/assets/<asset-id>.md",
652
- "family": "asset",
653
- "notes": "Brand/marketing assets are structural. An asset holding customer-uploaded content SHOULD override with x_portability: tenant_private.",
654
- "portability": "structural",
655
- "required_fields": [
656
- "type",
657
- "asset_id",
658
- "asset_type",
659
- "url"
660
- ]
661
- },
662
- "meeting": {
663
- "append_only": false,
664
- "canonical_path": "meetings/<slug>.md",
665
- "family": "record",
666
- "portability": "tenant_private",
667
- "projection_strategy": "vfs_event_router",
668
- "required_fields": [
669
- "host_id",
670
- "status",
671
- "title",
672
- "type"
673
- ]
674
- },
675
- "member": {
676
- "append_only": false,
677
- "canonical_path": "members/<id>.md",
678
- "family": "record",
679
- "portability": "tenant_private",
680
- "projection_strategy": "none",
681
- "required_fields": [
682
- "type"
683
- ]
684
- },
685
- "message": {
686
- "append_only": false,
687
- "canonical_path": "message/<slug>.md",
688
- "family": "record",
689
- "portability": "tenant_private",
690
- "required_fields": [
691
- "type"
692
- ]
693
- },
694
- "model-preferences": {
695
- "append_only": false,
696
- "canonical_path": "models/preferences/MODEL-PREFERENCES.md",
697
- "family": "actor",
698
- "portability": "tenant_private",
699
- "required_fields": [
700
- "type",
701
- "user_id",
702
- "workspace_id"
703
- ]
704
- },
705
- "onboarding_state": {
706
- "append_only": false,
707
- "canonical_path": "onboarding_state.md",
708
- "family": "runtime",
709
- "portability": "tenant_private",
710
- "required_fields": [
711
- "type",
712
- "state_version",
713
- "collective_id",
714
- "completed_steps",
715
- "deferred_steps",
716
- "dismissed"
717
- ]
718
- },
719
- "order": {
720
- "append_only": false,
721
- "canonical_path": "order/<slug>.md",
722
- "family": "record",
723
- "portability": "tenant_private",
724
- "required_fields": [
725
- "type"
726
- ]
727
- },
728
- "page_revision": {
729
- "append_only": false,
730
- "canonical_path": "page_revisions/<id>.md",
731
- "family": "record",
732
- "portability": "tenant_private",
733
- "required_fields": [
734
- "id",
735
- "type"
736
- ]
737
- },
738
- "personalization": {
739
- "append_only": false,
740
- "canonical_path": "PERSONALIZATION.md",
741
- "family": "actor",
742
- "portability": "tenant_private",
743
- "required_fields": [
744
- "type"
745
- ]
746
- },
747
- "phone_number": {
748
- "append_only": false,
749
- "canonical_path": "telephony/PHONE_SYSTEM.md",
750
- "family": "resource",
751
- "portability": "resource_bound",
752
- "required_fields": [
753
- "type",
754
- "phone_number",
755
- "provider",
756
- "status"
757
- ],
758
- "resource": {
759
- "binds": [
760
- "phone_number",
761
- "provider"
762
- ],
763
- "kind": "phone",
764
- "provision_relation": "routes_calls_to"
765
- }
766
- },
767
- "profile": {
768
- "append_only": false,
769
- "canonical_path": "PROFILE.md",
770
- "family": "actor",
771
- "portability": "tenant_private",
772
- "required_fields": [
773
- "type",
774
- "user_id",
775
- "locale"
776
- ]
777
- },
778
- "promo": {
779
- "append_only": false,
780
- "canonical_path": "promos/<id>.md",
781
- "family": "record",
782
- "portability": "tenant_private",
783
- "projection_strategy": "replace",
784
- "required_fields": [
785
- "code",
786
- "discount_type",
787
- "discount_value",
788
- "type"
789
- ]
790
- },
791
- "recurring-invoice": {
792
- "append_only": false,
793
- "canonical_path": "recurring-invoices/<id>.md",
794
- "family": "record",
795
- "portability": "tenant_private",
796
- "projection_strategy": "none",
797
- "required_fields": [
798
- "type"
799
- ]
800
- },
801
- "resale_listing": {
802
- "append_only": false,
803
- "canonical_path": "resale/<id>.md",
804
- "family": "record",
805
- "portability": "tenant_private",
806
- "projection_strategy": "replace",
807
- "required_fields": [
808
- "event_id",
809
- "price_cents",
810
- "seller_email",
811
- "status",
812
- "ticket_id",
813
- "ticket_type_id",
814
- "type"
815
- ]
816
- },
817
- "rights-license": {
818
- "append_only": false,
819
- "canonical_path": "rights-licenses/<id>.md",
820
- "family": "record",
821
- "portability": "tenant_private",
822
- "projection_strategy": "replace",
823
- "required_fields": [
824
- "license_type",
825
- "licensee_contact_id",
826
- "type",
827
- "work_id"
828
- ]
829
- },
830
- "rights_imported_royalty": {
831
- "append_only": false,
832
- "canonical_path": "rights_imported_royaltys/<id>.md",
833
- "family": "record",
834
- "portability": "tenant_private",
835
- "required_fields": [
836
- "id",
837
- "type"
838
- ]
839
- },
840
- "rights_royalty_import": {
841
- "append_only": false,
842
- "canonical_path": "rights_royalty_imports/<id>.md",
843
- "family": "record",
844
- "portability": "tenant_private",
845
- "required_fields": [
846
- "id",
847
- "type"
848
- ]
849
- },
850
- "rights_royalty_payout": {
851
- "append_only": false,
852
- "canonical_path": "royalty-payouts/<id>.md",
853
- "family": "record",
854
- "portability": "tenant_private",
855
- "projection_strategy": "none",
856
- "required_fields": [
857
- "type"
858
- ]
859
- },
860
- "rights_royalty_rule": {
861
- "append_only": false,
862
- "canonical_path": "royalty-rules/<id>.md",
863
- "family": "record",
864
- "portability": "tenant_private",
865
- "projection_strategy": "none",
866
- "required_fields": [
867
- "type"
868
- ]
869
- },
870
- "royalty-payout": {
871
- "append_only": false,
872
- "canonical_path": "royalty-payouts/<id>.md",
873
- "family": "record",
874
- "portability": "tenant_private",
875
- "projection_strategy": "replace",
876
- "required_fields": [
877
- "amount_cents",
878
- "statement_id",
879
- "type"
880
- ]
881
- },
882
- "royalty-rule": {
883
- "append_only": false,
884
- "canonical_path": "royalty-rules/<id>.md",
885
- "family": "record",
886
- "portability": "tenant_private",
887
- "projection_strategy": "replace",
888
- "required_fields": [
889
- "contributor_contact_id",
890
- "rate_percentage",
891
- "royalty_type",
892
- "type",
893
- "work_id"
894
- ]
895
- },
896
- "settings": {
897
- "append_only": false,
898
- "canonical_path": "SETTINGS.md",
899
- "family": "config",
900
- "notes": "Workspace settings configure the business model (structural). Account-scoped settings SHOULD override with x_portability: tenant_private.",
901
- "portability": "structural",
902
- "required_fields": [
903
- "type"
904
- ]
905
- },
906
- "sharing_group": {
907
- "append_only": false,
908
- "canonical_path": "sharing-groups/<id>.md",
909
- "family": "actor",
910
- "portability": "tenant_private",
911
- "required_fields": [
912
- "type",
913
- "name",
914
- "color",
915
- "owner_user_id"
916
- ]
917
- },
918
- "sms_message": {
919
- "append_only": true,
920
- "canonical_path": "sms/messages/<id>.md",
921
- "family": "record",
922
- "portability": "tenant_private",
923
- "projection_strategy": "append_only_log",
924
- "required_fields": [
925
- "direction",
926
- "phone_number",
927
- "type"
928
- ]
929
- },
930
- "social-post": {
931
- "append_only": false,
932
- "canonical_path": "social-posts/<id>.md",
933
- "family": "record",
934
- "portability": "tenant_private",
935
- "projection_strategy": "replace",
936
- "required_fields": [
937
- "body",
938
- "type"
939
- ]
940
- },
941
- "sponsorship-benefit": {
942
- "append_only": false,
943
- "canonical_path": "crm/benefits/<id>.md",
944
- "family": "record",
945
- "portability": "tenant_private",
946
- "projection_strategy": "vfs_event_router",
947
- "required_fields": [
948
- "name",
949
- "tier_id",
950
- "type"
951
- ]
952
- },
953
- "sponsorship-tier": {
954
- "append_only": false,
955
- "canonical_path": "crm/tiers/<id>.md",
956
- "family": "record",
957
- "portability": "tenant_private",
958
- "projection_strategy": "vfs_event_router",
959
- "required_fields": [
960
- "name",
961
- "type"
962
- ]
963
- },
964
- "storefront": {
965
- "append_only": false,
966
- "canonical_path": "storefronts/<slug>.md",
967
- "family": "record",
968
- "portability": "tenant_private",
969
- "projection_strategy": "vfs_event_router",
970
- "required_fields": [
971
- "owner_id",
972
- "owner_type",
973
- "slug",
974
- "type"
975
- ]
976
- },
977
- "stream": {
978
- "append_only": false,
979
- "canonical_path": "streams/<slug>.md",
980
- "family": "record",
981
- "portability": "tenant_private",
982
- "projection_strategy": "none",
983
- "required_fields": [
984
- "type"
985
- ]
986
- },
987
- "survey": {
988
- "append_only": false,
989
- "canonical_path": "surveys/<id>.md",
990
- "family": "record",
991
- "portability": "tenant_private",
992
- "projection_strategy": "replace",
993
- "required_fields": [
994
- "event_id",
995
- "question",
996
- "type"
997
- ]
998
- },
999
- "system_settings": {
1000
- "append_only": false,
1001
- "canonical_path": "SYSTEM_SETTINGS.md",
1002
- "family": "config",
1003
- "notes": "Host/operator-level configuration; never transfers to a buyer.",
1004
- "portability": "tenant_private",
1005
- "required_fields": [
1006
- "type"
1007
- ]
1008
- },
1009
- "telecom_10dlc_campaign": {
1010
- "append_only": false,
1011
- "canonical_path": "telephony/10dlc/<id>.md",
1012
- "family": "record",
1013
- "portability": "tenant_private",
1014
- "projection_strategy": "vfs_event_router",
1015
- "required_fields": [
1016
- "campaign_id",
1017
- "status",
1018
- "type"
1019
- ]
1020
- },
1021
- "telecom_e911_address": {
1022
- "append_only": false,
1023
- "canonical_path": "telephony/e911/<id>.md",
1024
- "family": "record",
1025
- "portability": "tenant_private",
1026
- "projection_strategy": "vfs_event_router",
1027
- "required_fields": [
1028
- "address_1",
1029
- "city",
1030
- "state",
1031
- "type",
1032
- "zip"
1033
- ]
1034
- },
1035
- "telecom_number": {
1036
- "append_only": false,
1037
- "canonical_path": "telephony/numbers/<id>.md",
1038
- "family": "record",
1039
- "portability": "tenant_private",
1040
- "projection_strategy": "vfs_event_router",
1041
- "required_fields": [
1042
- "phone_number",
1043
- "provider",
1044
- "status",
1045
- "type"
1046
- ]
1047
- },
1048
- "telecom_route": {
1049
- "append_only": false,
1050
- "canonical_path": "telephony/routes/<id>.md",
1051
- "family": "record",
1052
- "portability": "tenant_private",
1053
- "projection_strategy": "vfs_event_router",
1054
- "required_fields": [
1055
- "destination_type",
1056
- "number_id",
1057
- "type"
1058
- ]
1059
- },
1060
- "telecom_sms_quota": {
1061
- "append_only": false,
1062
- "canonical_path": "telephony/sms_quota/<id>.md",
1063
- "family": "record",
1064
- "portability": "tenant_private",
1065
- "projection_strategy": "vfs_event_router",
1066
- "required_fields": [
1067
- "balance",
1068
- "credits_used",
1069
- "month",
1070
- "type"
1071
- ]
1072
- },
1073
- "ticket_transfer": {
1074
- "append_only": false,
1075
- "canonical_path": "transfers/<id>.md",
1076
- "family": "record",
1077
- "portability": "tenant_private",
1078
- "projection_strategy": "none",
1079
- "required_fields": [
1080
- "from_order_id",
1081
- "from_ticket_id",
1082
- "recipient_email",
1083
- "to_order_id",
1084
- "to_ticket_id",
1085
- "type"
1086
- ]
1087
- },
1088
- "venue": {
1089
- "append_only": false,
1090
- "canonical_path": "venues/<slug>.md",
1091
- "family": "record",
1092
- "portability": "tenant_private",
1093
- "projection_strategy": "replace",
1094
- "required_fields": [
1095
- "type"
1096
- ]
1097
- },
1098
- "voucher": {
1099
- "append_only": false,
1100
- "canonical_path": "vouchers/<slug>.md",
1101
- "family": "record",
1102
- "portability": "tenant_private",
1103
- "projection_strategy": "replace",
1104
- "required_fields": [
1105
- "code",
1106
- "label",
1107
- "type"
1108
- ]
1109
- }
1110
- },
1111
- "extends": "core",
1112
- "registry": "festech",
1113
- "spec_version": "0.3",
1114
- "version": "2.0.0"
1115
- }