redevplugin-contracts 0.6.5

Embedded machine contracts for the ReDevPlugin platform
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
// Code generated by scripts/generate_platform_package_contracts.mjs; DO NOT EDIT.

use super::{
    Contract, ContractId, GoModuleCoordinate, NpmPackageCoordinate, PackageSet, RustCrateCoordinate,
};

impl ContractId {
    pub const COMPATIBILITY_MANIFEST_SCHEMA: Self =
        Self::from_static("compatibility-manifest-schema");
    pub const CONTRACT_REGISTRY: Self = Self::from_static("contract-registry");
    pub const CONTRACT_REGISTRY_SCHEMA: Self = Self::from_static("contract-registry-schema");
    pub const ERROR_CODES_SCHEMA: Self = Self::from_static("error-codes-schema");
    pub const HOST_CAPABILITY_COMPATIBILITY_SCHEMA: Self =
        Self::from_static("host-capability-compatibility-schema");
    pub const HOST_CAPABILITY_CONTRACT_SCHEMA: Self =
        Self::from_static("host-capability-contract-schema");
    pub const HOST_CAPABILITY_MANIFEST_SCHEMA: Self =
        Self::from_static("host-capability-manifest-schema");
    pub const HOST_CAPABILITY_NOTICES_SCHEMA: Self =
        Self::from_static("host-capability-notices-schema");
    pub const HOST_CAPABILITY_PIN_SCHEMA: Self = Self::from_static("host-capability-pin-schema");
    pub const HOST_CAPABILITY_SIGNATURE_SCHEMA: Self =
        Self::from_static("host-capability-signature-schema");
    pub const IFRAME_BRIDGE_SCHEMA: Self = Self::from_static("iframe-bridge-schema");
    pub const MANIFEST_SCHEMA: Self = Self::from_static("manifest-schema");
    pub const NETWORK_GRANT_SCHEMA: Self = Self::from_static("network-grant-schema");
    pub const OPAQUE_SURFACE_DOCUMENT_SCHEMA: Self =
        Self::from_static("opaque-surface-document-schema");
    pub const OPAQUE_SURFACE_TRANSPORT_SCHEMA: Self =
        Self::from_static("opaque-surface-transport-schema");
    pub const OWNER_SCOPE_INVENTORY_REGISTRY: Self =
        Self::from_static("owner-scope-inventory-registry");
    pub const OWNER_SCOPE_INVENTORY_SCHEMA: Self =
        Self::from_static("owner-scope-inventory-schema");
    pub const OWNER_SCOPE_MIGRATION_SCHEMA: Self =
        Self::from_static("owner-scope-migration-schema");
    pub const PACKAGE_SIGNATURE_SCHEMA: Self = Self::from_static("package-signature-schema");
    pub const PERFORMANCE_CONTRACT: Self = Self::from_static("performance-contract");
    pub const PERFORMANCE_EVIDENCE_SCHEMA: Self = Self::from_static("performance-evidence-schema");
    pub const PLATFORM_PACKAGE_PUBLICATION_SCHEMA: Self =
        Self::from_static("platform-package-publication-schema");
    pub const PLATFORM_PACKAGE_SET_SCHEMA: Self = Self::from_static("platform-package-set-schema");
    pub const PLUGIN_PLATFORM_OPENAPI: Self = Self::from_static("plugin-platform-openapi");
    pub const PROCESS_CONTAINMENT_SCHEMA: Self = Self::from_static("process-containment-schema");
    pub const QUARANTINE_CLEANUP_SCHEMA: Self = Self::from_static("quarantine-cleanup-schema");
    pub const RELEASE_METADATA_SCHEMA: Self = Self::from_static("release-metadata-schema");
    pub const RELEASE_REVOCATION_POINTER_SCHEMA: Self =
        Self::from_static("release-revocation-pointer-schema");
    pub const RELEASE_REVOCATION_SCHEMA: Self = Self::from_static("release-revocation-schema");
    pub const RELEASE_ROOT_DELEGATION_SCHEMA: Self =
        Self::from_static("release-root-delegation-schema");
    pub const RELEASE_SIGNATURE_ENVELOPE_SCHEMA: Self =
        Self::from_static("release-signature-envelope-schema");
    pub const RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA: Self =
        Self::from_static("release-signing-ledger-evidence-schema");
    pub const RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA: Self =
        Self::from_static("release-signing-ledger-receipt-schema");
    pub const RELEASE_SIGNING_LEDGER_SCHEMA: Self =
        Self::from_static("release-signing-ledger-schema");
    pub const RELEASE_SIGNING_SUBJECT_SCHEMA: Self =
        Self::from_static("release-signing-subject-schema");
    pub const RELEASE_SOURCE_POLICY_POINTER_SCHEMA: Self =
        Self::from_static("release-source-policy-pointer-schema");
    pub const RELEASE_SOURCE_POLICY_SCHEMA: Self =
        Self::from_static("release-source-policy-schema");
    pub const RELEASE_TRUST_STATE_SCHEMA: Self = Self::from_static("release-trust-state-schema");
    pub const RESOURCE_SCOPE_SCHEMA: Self = Self::from_static("resource-scope-schema");
    pub const RUNTIME_ADMISSION_SCHEMA: Self = Self::from_static("runtime-admission-schema");
    pub const RUNTIME_DESCRIPTOR_SCHEMA: Self = Self::from_static("runtime-descriptor-schema");
    pub const RUNTIME_EXEC_JOURNAL_SCHEMA: Self = Self::from_static("runtime-exec-journal-schema");
    pub const RUST_IPC_SCHEMA: Self = Self::from_static("rust-ipc-schema");
    pub const SESSION_SCOPE_SCHEMA: Self = Self::from_static("session-scope-schema");
    pub const TARGET_CLASSIFIER_FIXTURE: Self = Self::from_static("target-classifier-fixture");
    pub const TOKEN_TICKET_SCHEMA: Self = Self::from_static("token-ticket-schema");
    pub const TRUSTED_TIME_EVIDENCE_SCHEMA: Self =
        Self::from_static("trusted-time-evidence-schema");
    pub const TRUSTED_TIME_LEAF_SCHEMA: Self = Self::from_static("trusted-time-leaf-schema");
    pub const WASM_WORKER_SCHEMA: Self = Self::from_static("wasm-worker-schema");
    pub const WORKER_INVOCATION_SCHEMA: Self = Self::from_static("worker-invocation-schema");
}

pub(crate) fn parse_contract_id(value: &str) -> Option<ContractId> {
    match value {
        "compatibility-manifest-schema" => Some(ContractId::COMPATIBILITY_MANIFEST_SCHEMA),
        "contract-registry" => Some(ContractId::CONTRACT_REGISTRY),
        "contract-registry-schema" => Some(ContractId::CONTRACT_REGISTRY_SCHEMA),
        "error-codes-schema" => Some(ContractId::ERROR_CODES_SCHEMA),
        "host-capability-compatibility-schema" => {
            Some(ContractId::HOST_CAPABILITY_COMPATIBILITY_SCHEMA)
        }
        "host-capability-contract-schema" => Some(ContractId::HOST_CAPABILITY_CONTRACT_SCHEMA),
        "host-capability-manifest-schema" => Some(ContractId::HOST_CAPABILITY_MANIFEST_SCHEMA),
        "host-capability-notices-schema" => Some(ContractId::HOST_CAPABILITY_NOTICES_SCHEMA),
        "host-capability-pin-schema" => Some(ContractId::HOST_CAPABILITY_PIN_SCHEMA),
        "host-capability-signature-schema" => Some(ContractId::HOST_CAPABILITY_SIGNATURE_SCHEMA),
        "iframe-bridge-schema" => Some(ContractId::IFRAME_BRIDGE_SCHEMA),
        "manifest-schema" => Some(ContractId::MANIFEST_SCHEMA),
        "network-grant-schema" => Some(ContractId::NETWORK_GRANT_SCHEMA),
        "opaque-surface-document-schema" => Some(ContractId::OPAQUE_SURFACE_DOCUMENT_SCHEMA),
        "opaque-surface-transport-schema" => Some(ContractId::OPAQUE_SURFACE_TRANSPORT_SCHEMA),
        "owner-scope-inventory-registry" => Some(ContractId::OWNER_SCOPE_INVENTORY_REGISTRY),
        "owner-scope-inventory-schema" => Some(ContractId::OWNER_SCOPE_INVENTORY_SCHEMA),
        "owner-scope-migration-schema" => Some(ContractId::OWNER_SCOPE_MIGRATION_SCHEMA),
        "package-signature-schema" => Some(ContractId::PACKAGE_SIGNATURE_SCHEMA),
        "performance-contract" => Some(ContractId::PERFORMANCE_CONTRACT),
        "performance-evidence-schema" => Some(ContractId::PERFORMANCE_EVIDENCE_SCHEMA),
        "platform-package-publication-schema" => {
            Some(ContractId::PLATFORM_PACKAGE_PUBLICATION_SCHEMA)
        }
        "platform-package-set-schema" => Some(ContractId::PLATFORM_PACKAGE_SET_SCHEMA),
        "plugin-platform-openapi" => Some(ContractId::PLUGIN_PLATFORM_OPENAPI),
        "process-containment-schema" => Some(ContractId::PROCESS_CONTAINMENT_SCHEMA),
        "quarantine-cleanup-schema" => Some(ContractId::QUARANTINE_CLEANUP_SCHEMA),
        "release-metadata-schema" => Some(ContractId::RELEASE_METADATA_SCHEMA),
        "release-revocation-pointer-schema" => Some(ContractId::RELEASE_REVOCATION_POINTER_SCHEMA),
        "release-revocation-schema" => Some(ContractId::RELEASE_REVOCATION_SCHEMA),
        "release-root-delegation-schema" => Some(ContractId::RELEASE_ROOT_DELEGATION_SCHEMA),
        "release-signature-envelope-schema" => Some(ContractId::RELEASE_SIGNATURE_ENVELOPE_SCHEMA),
        "release-signing-ledger-evidence-schema" => {
            Some(ContractId::RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA)
        }
        "release-signing-ledger-receipt-schema" => {
            Some(ContractId::RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA)
        }
        "release-signing-ledger-schema" => Some(ContractId::RELEASE_SIGNING_LEDGER_SCHEMA),
        "release-signing-subject-schema" => Some(ContractId::RELEASE_SIGNING_SUBJECT_SCHEMA),
        "release-source-policy-pointer-schema" => {
            Some(ContractId::RELEASE_SOURCE_POLICY_POINTER_SCHEMA)
        }
        "release-source-policy-schema" => Some(ContractId::RELEASE_SOURCE_POLICY_SCHEMA),
        "release-trust-state-schema" => Some(ContractId::RELEASE_TRUST_STATE_SCHEMA),
        "resource-scope-schema" => Some(ContractId::RESOURCE_SCOPE_SCHEMA),
        "runtime-admission-schema" => Some(ContractId::RUNTIME_ADMISSION_SCHEMA),
        "runtime-descriptor-schema" => Some(ContractId::RUNTIME_DESCRIPTOR_SCHEMA),
        "runtime-exec-journal-schema" => Some(ContractId::RUNTIME_EXEC_JOURNAL_SCHEMA),
        "rust-ipc-schema" => Some(ContractId::RUST_IPC_SCHEMA),
        "session-scope-schema" => Some(ContractId::SESSION_SCOPE_SCHEMA),
        "target-classifier-fixture" => Some(ContractId::TARGET_CLASSIFIER_FIXTURE),
        "token-ticket-schema" => Some(ContractId::TOKEN_TICKET_SCHEMA),
        "trusted-time-evidence-schema" => Some(ContractId::TRUSTED_TIME_EVIDENCE_SCHEMA),
        "trusted-time-leaf-schema" => Some(ContractId::TRUSTED_TIME_LEAF_SCHEMA),
        "wasm-worker-schema" => Some(ContractId::WASM_WORKER_SCHEMA),
        "worker-invocation-schema" => Some(ContractId::WORKER_INVOCATION_SCHEMA),
        _ => None,
    }
}

static CONTRACT_BODY_COMPATIBILITY_MANIFEST_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/compatibility-manifest-v8.schema.json\",\n  \"title\": \"ReDevPlugin compatibility manifest v8\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"package_set\", \"matrix\", \"contract_set_sha256\", \"contracts\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.compatibility.v8\"},\n    \"package_set\": {\"$ref\": \"platform-package-set-v1.schema.json\"},\n    \"matrix\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"plugin_ui_protocol_version\", \"plugin_host_protocol_version\", \"rust_ipc_version\", \"wasm_abi_version\",\n        \"manifest_schema_version\", \"package_signature_schema_version\", \"release_metadata_schema_version\",\n        \"release_root_delegation_schema_version\", \"release_source_policy_schema_version\",\n        \"release_source_policy_pointer_schema_version\", \"release_revocation_schema_version\",\n        \"release_revocation_pointer_schema_version\", \"release_trust_state_schema_version\",\n        \"trusted_time_evidence_schema_version\", \"trusted_time_leaf_schema_version\",\n        \"release_signing_ledger_schema_version\", \"release_signing_subject_schema_version\",\n        \"release_signature_envelope_schema_version\", \"release_signing_ledger_receipt_schema_version\",\n        \"release_signing_ledger_evidence_schema_version\", \"token_ticket_schema_version\", \"bridge_schema_version\",\n        \"opaque_surface_document_schema_version\", \"opaque_surface_transport_schema_version\", \"target_classifier_version\",\n        \"network_grant_schema_version\", \"resource_scope_schema_version\", \"session_scope_schema_version\",\n        \"plugin_platform_openapi_version\", \"compatibility_schema_version\", \"worker_invocation_schema_version\",\n        \"host_capability_contract_schema_version\", \"host_capability_pin_schema_version\",\n        \"host_capability_manifest_schema_version\", \"host_capability_compatibility_schema_version\",\n        \"host_capability_signature_schema_version\", \"host_capability_notices_schema_version\",\n        \"error_codes_schema_version\", \"performance_contract_version\", \"performance_evidence_schema_version\",\n        \"contract_registry_version\", \"platform_package_set_schema_version\",\n        \"platform_package_publication_schema_version\", \"runtime_admission_schema_version\",\n        \"runtime_descriptor_schema_version\", \"owner_scope_inventory_registry_version\",\n        \"owner_scope_inventory_schema_version\", \"owner_scope_migration_schema_version\",\n        \"process_containment_schema_version\", \"runtime_exec_journal_schema_version\",\n        \"quarantine_cleanup_schema_version\"\n      ],\n      \"properties\": {\n        \"plugin_ui_protocol_version\": {\"const\": \"plugin-ui-v5\"},\n        \"plugin_host_protocol_version\": {\"const\": \"plugin-host-v6\"},\n        \"rust_ipc_version\": {\"const\": \"rust-ipc-v6\"},\n        \"wasm_abi_version\": {\"const\": \"redevplugin-wasm-worker-v2\"},\n        \"manifest_schema_version\": {\"const\": \"manifest-v5\"},\n        \"package_signature_schema_version\": {\"const\": \"package-signature-v1\"},\n        \"release_metadata_schema_version\": {\"const\": \"release-metadata-v5\"},\n        \"release_root_delegation_schema_version\": {\"const\": \"release-root-delegation-v1\"},\n        \"release_source_policy_schema_version\": {\"const\": \"release-source-policy-v2\"},\n        \"release_source_policy_pointer_schema_version\": {\"const\": \"release-source-policy-pointer-v1\"},\n        \"release_revocation_schema_version\": {\"const\": \"release-revocation-v2\"},\n        \"release_revocation_pointer_schema_version\": {\"const\": \"release-revocation-pointer-v1\"},\n        \"release_trust_state_schema_version\": {\"const\": \"release-trust-state-v1\"},\n        \"trusted_time_evidence_schema_version\": {\"const\": \"trusted-time-evidence-v1\"},\n        \"trusted_time_leaf_schema_version\": {\"const\": \"trusted-time-leaf-v1\"},\n        \"release_signing_ledger_schema_version\": {\"const\": \"release-signing-ledger-v1\"},\n        \"release_signing_subject_schema_version\": {\"const\": \"release-signing-subject-v1\"},\n        \"release_signature_envelope_schema_version\": {\"const\": \"release-signature-envelope-v1\"},\n        \"release_signing_ledger_receipt_schema_version\": {\"const\": \"release-signing-ledger-receipt-v1\"},\n        \"release_signing_ledger_evidence_schema_version\": {\"const\": \"release-signing-ledger-evidence-v1\"},\n        \"token_ticket_schema_version\": {\"const\": \"token-ticket-v4\"},\n        \"bridge_schema_version\": {\"const\": \"bridge-v5\"},\n        \"opaque_surface_document_schema_version\": {\"const\": \"opaque-surface-document-v3\"},\n        \"opaque_surface_transport_schema_version\": {\"const\": \"opaque-surface-transport-v4\"},\n        \"target_classifier_version\": {\"const\": \"target-classifier-v2\"},\n        \"network_grant_schema_version\": {\"const\": \"network-grant-v2\"},\n        \"resource_scope_schema_version\": {\"const\": \"resource-scope-v1\"},\n        \"session_scope_schema_version\": {\"const\": \"session-scope-v1\"},\n        \"plugin_platform_openapi_version\": {\"const\": \"plugin-platform-v8\"},\n        \"compatibility_schema_version\": {\"const\": \"compatibility-manifest-v8\"},\n        \"worker_invocation_schema_version\": {\"const\": \"worker-invocation-v3\"},\n        \"host_capability_contract_schema_version\": {\"const\": \"host-capability-contract-v1\"},\n        \"host_capability_pin_schema_version\": {\"const\": \"host-capability-pin-v1\"},\n        \"host_capability_manifest_schema_version\": {\"const\": \"host-capability-manifest-v1\"},\n        \"host_capability_compatibility_schema_version\": {\"const\": \"host-capability-compatibility-v1\"},\n        \"host_capability_signature_schema_version\": {\"const\": \"host-capability-signature-v1\"},\n        \"host_capability_notices_schema_version\": {\"const\": \"host-capability-notices-v1\"},\n        \"error_codes_schema_version\": {\"const\": \"error-codes-v6\"},\n        \"performance_contract_version\": {\"const\": \"performance-contract-v3\"},\n        \"performance_evidence_schema_version\": {\"const\": \"performance-evidence-v3\"},\n        \"contract_registry_version\": {\"const\": \"contract-registry-v2\"},\n        \"platform_package_set_schema_version\": {\"const\": \"platform-package-set-v1\"},\n        \"platform_package_publication_schema_version\": {\"const\": \"platform-package-publication-v1\"},\n        \"runtime_admission_schema_version\": {\"const\": \"runtime-admission-v1\"},\n        \"runtime_descriptor_schema_version\": {\"const\": \"runtime-descriptor-v2\"},\n        \"owner_scope_inventory_registry_version\": {\"const\": \"owner-scope-inventory-registry-v1\"},\n        \"owner_scope_inventory_schema_version\": {\"const\": \"owner-scope-inventory-v1\"},\n        \"owner_scope_migration_schema_version\": {\"const\": \"owner-scope-migration-v1\"},\n        \"process_containment_schema_version\": {\"const\": \"process-containment-v1\"},\n        \"runtime_exec_journal_schema_version\": {\"const\": \"runtime-exec-journal-v1\"},\n        \"quarantine_cleanup_schema_version\": {\"const\": \"quarantine-cleanup-v1\"}\n      }\n    },\n    \"contract_set_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"contracts\": {\n      \"type\": \"array\", \"minItems\": 1, \"maxItems\": 256, \"uniqueItems\": true,\n      \"items\": {\"$ref\": \"#/$defs/contract\"}\n    }\n  },\n  \"$defs\": {\n    \"contract\": {\n      \"type\": \"object\", \"additionalProperties\": false,\n      \"required\": [\"id\", \"path\", \"version\", \"sha256\"],\n      \"properties\": {\n        \"id\": {\"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9-]+$\"},\n        \"path\": {\"type\": \"string\", \"pattern\": \"^spec/(openapi|plugin)/[A-Za-z0-9._/-]+$\"},\n        \"version\": {\"type\": \"string\", \"minLength\": 1},\n        \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_CONTRACT_REGISTRY: &[u8] = "{\n  \"schema_version\": \"redevplugin.contract_registry.v2\",\n  \"registry_version\": \"contract-registry-v2\",\n  \"artifacts\": [\n    {\n      \"id\": \"compatibility-manifest-schema\",\n      \"path\": \"spec/plugin/compatibility-manifest-v8.schema.json\",\n      \"version\": \"compatibility-manifest-v8\",\n      \"sha256\": \"a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79\"\n    },\n    {\n      \"id\": \"contract-registry-schema\",\n      \"path\": \"spec/plugin/contract-registry-v2.schema.json\",\n      \"version\": \"contract-registry-v2\",\n      \"sha256\": \"d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac\"\n    },\n    {\n      \"id\": \"error-codes-schema\",\n      \"path\": \"spec/plugin/error-codes-v6.schema.json\",\n      \"version\": \"error-codes-v6\",\n      \"sha256\": \"094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28\"\n    },\n    {\n      \"id\": \"host-capability-compatibility-schema\",\n      \"path\": \"spec/plugin/host-capability-compatibility-v1.schema.json\",\n      \"version\": \"host-capability-compatibility-v1\",\n      \"sha256\": \"361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de\"\n    },\n    {\n      \"id\": \"host-capability-contract-schema\",\n      \"path\": \"spec/plugin/host-capability-contract-v1.schema.json\",\n      \"version\": \"host-capability-contract-v1\",\n      \"sha256\": \"0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485\"\n    },\n    {\n      \"id\": \"host-capability-manifest-schema\",\n      \"path\": \"spec/plugin/host-capability-manifest-v1.schema.json\",\n      \"version\": \"host-capability-manifest-v1\",\n      \"sha256\": \"5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e\"\n    },\n    {\n      \"id\": \"host-capability-notices-schema\",\n      \"path\": \"spec/plugin/host-capability-notices-v1.schema.json\",\n      \"version\": \"host-capability-notices-v1\",\n      \"sha256\": \"6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948\"\n    },\n    {\n      \"id\": \"host-capability-pin-schema\",\n      \"path\": \"spec/plugin/host-capability-pin-v1.schema.json\",\n      \"version\": \"host-capability-pin-v1\",\n      \"sha256\": \"20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338\"\n    },\n    {\n      \"id\": \"host-capability-signature-schema\",\n      \"path\": \"spec/plugin/host-capability-signature-v1.schema.json\",\n      \"version\": \"host-capability-signature-v1\",\n      \"sha256\": \"88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e\"\n    },\n    {\n      \"id\": \"iframe-bridge-schema\",\n      \"path\": \"spec/plugin/bridge-v5.schema.json\",\n      \"version\": \"bridge-v5\",\n      \"sha256\": \"ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da\"\n    },\n    {\n      \"id\": \"manifest-schema\",\n      \"path\": \"spec/plugin/manifest-v5.schema.json\",\n      \"version\": \"manifest-v5\",\n      \"sha256\": \"9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7\"\n    },\n    {\n      \"id\": \"network-grant-schema\",\n      \"path\": \"spec/plugin/network-grant-v2.schema.json\",\n      \"version\": \"network-grant-v2\",\n      \"sha256\": \"5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc\"\n    },\n    {\n      \"id\": \"opaque-surface-document-schema\",\n      \"path\": \"spec/plugin/opaque-surface-document-v3.schema.json\",\n      \"version\": \"opaque-surface-document-v3\",\n      \"sha256\": \"63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450\"\n    },\n    {\n      \"id\": \"opaque-surface-transport-schema\",\n      \"path\": \"spec/plugin/opaque-surface-transport-v4.schema.json\",\n      \"version\": \"opaque-surface-transport-v4\",\n      \"sha256\": \"70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2\"\n    },\n    {\n      \"id\": \"owner-scope-inventory-registry\",\n      \"path\": \"spec/plugin/owner-scope-inventories-v1.json\",\n      \"version\": \"owner-scope-inventory-registry-v1\",\n      \"sha256\": \"92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217\"\n    },\n    {\n      \"id\": \"owner-scope-inventory-schema\",\n      \"path\": \"spec/plugin/owner-scope-inventory-v1.schema.json\",\n      \"version\": \"owner-scope-inventory-v1\",\n      \"sha256\": \"972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254\"\n    },\n    {\n      \"id\": \"owner-scope-migration-schema\",\n      \"path\": \"spec/plugin/owner-scope-migration-v1.schema.json\",\n      \"version\": \"owner-scope-migration-v1\",\n      \"sha256\": \"e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993\"\n    },\n    {\n      \"id\": \"package-signature-schema\",\n      \"path\": \"spec/plugin/package-signature-v1.schema.json\",\n      \"version\": \"package-signature-v1\",\n      \"sha256\": \"13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284\"\n    },\n    {\n      \"id\": \"performance-contract\",\n      \"path\": \"spec/plugin/performance-contract-v3.json\",\n      \"version\": \"performance-contract-v3\",\n      \"sha256\": \"a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b\"\n    },\n    {\n      \"id\": \"performance-evidence-schema\",\n      \"path\": \"spec/plugin/performance-evidence-v3.schema.json\",\n      \"version\": \"performance-evidence-v3\",\n      \"sha256\": \"a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326\"\n    },\n    {\n      \"id\": \"platform-package-publication-schema\",\n      \"path\": \"spec/plugin/platform-package-publication-v1.schema.json\",\n      \"version\": \"platform-package-publication-v1\",\n      \"sha256\": \"20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0\"\n    },\n    {\n      \"id\": \"platform-package-set-schema\",\n      \"path\": \"spec/plugin/platform-package-set-v1.schema.json\",\n      \"version\": \"platform-package-set-v1\",\n      \"sha256\": \"4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796\"\n    },\n    {\n      \"id\": \"plugin-platform-openapi\",\n      \"path\": \"spec/openapi/plugin-platform-v8.yaml\",\n      \"version\": \"plugin-platform-v8\",\n      \"sha256\": \"290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac\"\n    },\n    {\n      \"id\": \"process-containment-schema\",\n      \"path\": \"spec/plugin/process-containment-v1.schema.json\",\n      \"version\": \"process-containment-v1\",\n      \"sha256\": \"930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc\"\n    },\n    {\n      \"id\": \"quarantine-cleanup-schema\",\n      \"path\": \"spec/plugin/quarantine-cleanup-v1.schema.json\",\n      \"version\": \"quarantine-cleanup-v1\",\n      \"sha256\": \"0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1\"\n    },\n    {\n      \"id\": \"release-metadata-schema\",\n      \"path\": \"spec/plugin/release-metadata-v5.schema.json\",\n      \"version\": \"release-metadata-v5\",\n      \"sha256\": \"255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a\"\n    },\n    {\n      \"id\": \"release-revocation-pointer-schema\",\n      \"path\": \"spec/plugin/release-revocation-pointer-v1.schema.json\",\n      \"version\": \"release-revocation-pointer-v1\",\n      \"sha256\": \"a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e\"\n    },\n    {\n      \"id\": \"release-revocation-schema\",\n      \"path\": \"spec/plugin/release-revocation-v2.schema.json\",\n      \"version\": \"release-revocation-v2\",\n      \"sha256\": \"c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4\"\n    },\n    {\n      \"id\": \"release-root-delegation-schema\",\n      \"path\": \"spec/plugin/release-root-delegation-v1.schema.json\",\n      \"version\": \"release-root-delegation-v1\",\n      \"sha256\": \"c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825\"\n    },\n    {\n      \"id\": \"release-signature-envelope-schema\",\n      \"path\": \"spec/plugin/release-signature-envelope-v1.schema.json\",\n      \"version\": \"release-signature-envelope-v1\",\n      \"sha256\": \"7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29\"\n    },\n    {\n      \"id\": \"release-signing-ledger-evidence-schema\",\n      \"path\": \"spec/plugin/release-signing-ledger-evidence-v1.schema.json\",\n      \"version\": \"release-signing-ledger-evidence-v1\",\n      \"sha256\": \"9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c\"\n    },\n    {\n      \"id\": \"release-signing-ledger-receipt-schema\",\n      \"path\": \"spec/plugin/release-signing-ledger-receipt-v1.schema.json\",\n      \"version\": \"release-signing-ledger-receipt-v1\",\n      \"sha256\": \"29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561\"\n    },\n    {\n      \"id\": \"release-signing-ledger-schema\",\n      \"path\": \"spec/plugin/release-signing-ledger-v1.schema.json\",\n      \"version\": \"release-signing-ledger-v1\",\n      \"sha256\": \"0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765\"\n    },\n    {\n      \"id\": \"release-signing-subject-schema\",\n      \"path\": \"spec/plugin/release-signing-subject-v1.schema.json\",\n      \"version\": \"release-signing-subject-v1\",\n      \"sha256\": \"876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e\"\n    },\n    {\n      \"id\": \"release-source-policy-pointer-schema\",\n      \"path\": \"spec/plugin/release-source-policy-pointer-v1.schema.json\",\n      \"version\": \"release-source-policy-pointer-v1\",\n      \"sha256\": \"1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c\"\n    },\n    {\n      \"id\": \"release-source-policy-schema\",\n      \"path\": \"spec/plugin/release-source-policy-v2.schema.json\",\n      \"version\": \"release-source-policy-v2\",\n      \"sha256\": \"6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237\"\n    },\n    {\n      \"id\": \"release-trust-state-schema\",\n      \"path\": \"spec/plugin/release-trust-state-v1.schema.json\",\n      \"version\": \"release-trust-state-v1\",\n      \"sha256\": \"19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2\"\n    },\n    {\n      \"id\": \"resource-scope-schema\",\n      \"path\": \"spec/plugin/resource-scope-v1.schema.json\",\n      \"version\": \"resource-scope-v1\",\n      \"sha256\": \"e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f\"\n    },\n    {\n      \"id\": \"runtime-admission-schema\",\n      \"path\": \"spec/plugin/runtime-admission-v1.schema.json\",\n      \"version\": \"runtime-admission-v1\",\n      \"sha256\": \"bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb\"\n    },\n    {\n      \"id\": \"runtime-descriptor-schema\",\n      \"path\": \"spec/plugin/runtime-descriptor-v2.schema.json\",\n      \"version\": \"runtime-descriptor-v2\",\n      \"sha256\": \"2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351\"\n    },\n    {\n      \"id\": \"runtime-exec-journal-schema\",\n      \"path\": \"spec/plugin/runtime-exec-journal-v1.schema.json\",\n      \"version\": \"runtime-exec-journal-v1\",\n      \"sha256\": \"2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2\"\n    },\n    {\n      \"id\": \"rust-ipc-schema\",\n      \"path\": \"spec/plugin/ipc-v6.schema.json\",\n      \"version\": \"rust-ipc-v6\",\n      \"sha256\": \"9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f\"\n    },\n    {\n      \"id\": \"session-scope-schema\",\n      \"path\": \"spec/plugin/session-scope-v1.schema.json\",\n      \"version\": \"session-scope-v1\",\n      \"sha256\": \"3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e\"\n    },\n    {\n      \"id\": \"target-classifier-fixture\",\n      \"path\": \"spec/plugin/target-classifier-v2.json\",\n      \"version\": \"target-classifier-v2\",\n      \"sha256\": \"ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1\"\n    },\n    {\n      \"id\": \"token-ticket-schema\",\n      \"path\": \"spec/plugin/token-ticket-v4.schema.json\",\n      \"version\": \"token-ticket-v4\",\n      \"sha256\": \"5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1\"\n    },\n    {\n      \"id\": \"trusted-time-evidence-schema\",\n      \"path\": \"spec/plugin/trusted-time-evidence-v1.schema.json\",\n      \"version\": \"trusted-time-evidence-v1\",\n      \"sha256\": \"4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38\"\n    },\n    {\n      \"id\": \"trusted-time-leaf-schema\",\n      \"path\": \"spec/plugin/trusted-time-leaf-v1.schema.json\",\n      \"version\": \"trusted-time-leaf-v1\",\n      \"sha256\": \"1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb\"\n    },\n    {\n      \"id\": \"wasm-worker-schema\",\n      \"path\": \"spec/plugin/wasm-worker-v2.schema.json\",\n      \"version\": \"redevplugin-wasm-worker-v2\",\n      \"sha256\": \"00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902\"\n    },\n    {\n      \"id\": \"worker-invocation-schema\",\n      \"path\": \"spec/plugin/worker-invocation-v3.schema.json\",\n      \"version\": \"worker-invocation-v3\",\n      \"sha256\": \"f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927\"\n    }\n  ]\n}\n".as_bytes();
static CONTRACT_BODY_CONTRACT_REGISTRY_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/contract-registry-v2.schema.json\",\n  \"title\": \"ReDevPlugin Contract Registry V2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"registry_version\", \"artifacts\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.contract_registry.v2\"},\n    \"registry_version\": {\"const\": \"contract-registry-v2\"},\n    \"artifacts\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 256,\n      \"uniqueItems\": true,\n      \"items\": {\"$ref\": \"#/$defs/artifact\"}\n    }\n  },\n  \"$defs\": {\n    \"artifact\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"id\", \"path\", \"version\", \"sha256\"],\n      \"properties\": {\n        \"id\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 128,\n          \"pattern\": \"^[a-z][a-z0-9-]+$\",\n          \"not\": {\"const\": \"contract-registry\"}\n        },\n        \"path\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 1024,\n          \"pattern\": \"^spec/(openapi|plugin)/[A-Za-z0-9][A-Za-z0-9._-]*(/[A-Za-z0-9][A-Za-z0-9._-]*)*$\",\n          \"not\": {\"enum\": [\"spec/plugin/contract-registry-v2.json\", \"spec/plugin/platform-package-set-v1.json\"]}\n        },\n        \"version\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128, \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"},\n        \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_ERROR_CODES_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/error-codes-v6.schema.json\",\n  \"title\": \"ReDevPlugin stable error codes v6\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"$defs\": {\n    \"platform_error_code\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"PLUGIN_INVALID_REQUEST\",\n        \"PLUGIN_MANIFEST_INVALID\",\n        \"PLUGIN_PACKAGE_INVALID\",\n        \"PLUGIN_PACKAGE_TOO_LARGE\",\n        \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n        \"PLUGIN_SIGNATURE_INVALID\",\n        \"PLUGIN_TRUST_STATE_DENIED\",\n        \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n        \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n        \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n        \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n        \"PLUGIN_DISABLED\",\n        \"PLUGIN_DISABLED_BY_POLICY\",\n        \"PLUGIN_PERMISSION_DENIED\",\n        \"PLUGIN_ORIGIN_DENIED\",\n        \"PLUGIN_ACTION_DENIED\",\n        \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n        \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n        \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n        \"PLUGIN_ADAPTER_FAILURE\",\n        \"PLUGIN_SESSION_REVOKED\",\n        \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n        \"PLUGIN_SESSION_FENCE_CAPACITY\",\n        \"PLUGIN_CONFIRMATION_REQUIRED\",\n        \"PLUGIN_CONFIRMATION_INVALID\",\n        \"PLUGIN_TOKEN_EXPIRED\",\n        \"PLUGIN_TOKEN_REPLAY\",\n        \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n        \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n        \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n        \"PLUGIN_ASSET_TICKET_INVALID\",\n        \"PLUGIN_ASSET_SESSION_INVALID\",\n        \"PLUGIN_STREAM_TICKET_INVALID\",\n        \"PLUGIN_STREAM_DELIVERY_INVALID\",\n        \"PLUGIN_STREAM_CANCELLED\",\n        \"PLUGIN_LEASE_INVALID\",\n        \"PLUGIN_LEASE_REPLAYED\",\n        \"PLUGIN_GRANT_INVALID\",\n        \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n        \"PLUGIN_OPERATION_BLOCKED\",\n        \"PLUGIN_OPERATION_NOT_FOUND\",\n        \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n        \"PLUGIN_NETWORK_TARGET_DENIED\",\n        \"PLUGIN_NETWORK_RATE_LIMITED\",\n        \"PLUGIN_RUNTIME_UNAVAILABLE\",\n        \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n        \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n        \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n        \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n        \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n        \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n        \"PLUGIN_CAPABILITY_ERROR\",\n        \"PLUGIN_WORKER_ERROR\",\n        \"PLUGIN_CONTRACT_MISMATCH\",\n        \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n        \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n        \"PLUGIN_BINDING_REVISION_MISMATCH\",\n        \"PLUGIN_VALUES_REVISION_MISMATCH\",\n        \"PLUGIN_CSRF_REQUIRED\",\n        \"PLUGIN_CSRF_INVALID\",\n        \"PLUGIN_FEATURE_NOT_CONFIGURED\"\n      ]\n    },\n    \"bridge_error_code\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"PLUGIN_INVALID_REQUEST\",\n        \"PLUGIN_MANIFEST_INVALID\",\n        \"PLUGIN_PACKAGE_INVALID\",\n        \"PLUGIN_PACKAGE_TOO_LARGE\",\n        \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n        \"PLUGIN_SIGNATURE_INVALID\",\n        \"PLUGIN_TRUST_STATE_DENIED\",\n        \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n        \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n        \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n        \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n        \"PLUGIN_DISABLED\",\n        \"PLUGIN_DISABLED_BY_POLICY\",\n        \"PLUGIN_PERMISSION_DENIED\",\n        \"PLUGIN_ORIGIN_DENIED\",\n        \"PLUGIN_ACTION_DENIED\",\n        \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n        \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n        \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n        \"PLUGIN_ADAPTER_FAILURE\",\n        \"PLUGIN_SESSION_REVOKED\",\n        \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n        \"PLUGIN_SESSION_FENCE_CAPACITY\",\n        \"PLUGIN_CONFIRMATION_REQUIRED\",\n        \"PLUGIN_CONFIRMATION_INVALID\",\n        \"PLUGIN_TOKEN_EXPIRED\",\n        \"PLUGIN_TOKEN_REPLAY\",\n        \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n        \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n        \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n        \"PLUGIN_ASSET_TICKET_INVALID\",\n        \"PLUGIN_ASSET_SESSION_INVALID\",\n        \"PLUGIN_STREAM_TICKET_INVALID\",\n        \"PLUGIN_STREAM_DELIVERY_INVALID\",\n        \"PLUGIN_STREAM_CANCELLED\",\n        \"PLUGIN_LEASE_INVALID\",\n        \"PLUGIN_LEASE_REPLAYED\",\n        \"PLUGIN_GRANT_INVALID\",\n        \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n        \"PLUGIN_OPERATION_BLOCKED\",\n        \"PLUGIN_OPERATION_NOT_FOUND\",\n        \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n        \"PLUGIN_NETWORK_TARGET_DENIED\",\n        \"PLUGIN_NETWORK_RATE_LIMITED\",\n        \"PLUGIN_RUNTIME_UNAVAILABLE\",\n        \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n        \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n        \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n        \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n        \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n        \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n        \"PLUGIN_CAPABILITY_ERROR\",\n        \"PLUGIN_WORKER_ERROR\",\n        \"PLUGIN_CONTRACT_MISMATCH\",\n        \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n        \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n        \"PLUGIN_BINDING_REVISION_MISMATCH\",\n        \"PLUGIN_VALUES_REVISION_MISMATCH\",\n        \"PLUGIN_CSRF_REQUIRED\",\n        \"PLUGIN_CSRF_INVALID\",\n        \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n        \"PLUGIN_CONFIRMATION_REJECTED\",\n        \"PLUGIN_BRIDGE_CANCELLED\",\n        \"PLUGIN_BRIDGE_TIMEOUT\",\n        \"PLUGIN_BRIDGE_DISPOSED\",\n        \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n        \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\"\n      ]\n    },\n    \"typescript_client_error_code\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"PLUGIN_INVALID_REQUEST\",\n        \"PLUGIN_MANIFEST_INVALID\",\n        \"PLUGIN_PACKAGE_INVALID\",\n        \"PLUGIN_PACKAGE_TOO_LARGE\",\n        \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n        \"PLUGIN_SIGNATURE_INVALID\",\n        \"PLUGIN_TRUST_STATE_DENIED\",\n        \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n        \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n        \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n        \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n        \"PLUGIN_DISABLED\",\n        \"PLUGIN_DISABLED_BY_POLICY\",\n        \"PLUGIN_PERMISSION_DENIED\",\n        \"PLUGIN_ORIGIN_DENIED\",\n        \"PLUGIN_ACTION_DENIED\",\n        \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n        \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n        \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n        \"PLUGIN_ADAPTER_FAILURE\",\n        \"PLUGIN_SESSION_REVOKED\",\n        \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n        \"PLUGIN_SESSION_FENCE_CAPACITY\",\n        \"PLUGIN_CONFIRMATION_REQUIRED\",\n        \"PLUGIN_CONFIRMATION_INVALID\",\n        \"PLUGIN_TOKEN_EXPIRED\",\n        \"PLUGIN_TOKEN_REPLAY\",\n        \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n        \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n        \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n        \"PLUGIN_ASSET_TICKET_INVALID\",\n        \"PLUGIN_ASSET_SESSION_INVALID\",\n        \"PLUGIN_STREAM_TICKET_INVALID\",\n        \"PLUGIN_STREAM_DELIVERY_INVALID\",\n        \"PLUGIN_STREAM_CANCELLED\",\n        \"PLUGIN_LEASE_INVALID\",\n        \"PLUGIN_LEASE_REPLAYED\",\n        \"PLUGIN_GRANT_INVALID\",\n        \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n        \"PLUGIN_OPERATION_BLOCKED\",\n        \"PLUGIN_OPERATION_NOT_FOUND\",\n        \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n        \"PLUGIN_NETWORK_TARGET_DENIED\",\n        \"PLUGIN_NETWORK_RATE_LIMITED\",\n        \"PLUGIN_RUNTIME_UNAVAILABLE\",\n        \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n        \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n        \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n        \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n        \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n        \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n        \"PLUGIN_CAPABILITY_ERROR\",\n        \"PLUGIN_WORKER_ERROR\",\n        \"PLUGIN_CONTRACT_MISMATCH\",\n        \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n        \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n        \"PLUGIN_BINDING_REVISION_MISMATCH\",\n        \"PLUGIN_VALUES_REVISION_MISMATCH\",\n        \"PLUGIN_CSRF_REQUIRED\",\n        \"PLUGIN_CSRF_INVALID\",\n        \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n        \"PLUGIN_CONFIRMATION_REJECTED\",\n        \"PLUGIN_BRIDGE_CANCELLED\",\n        \"PLUGIN_BRIDGE_TIMEOUT\",\n        \"PLUGIN_BRIDGE_DISPOSED\",\n        \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n        \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\",\n        \"PLUGIN_PLATFORM_REQUEST_FAILED\",\n        \"PLUGIN_STREAM_FAILED\"\n      ]\n    },\n    \"rust_ipc_error_code\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"ARTIFACT_HANDLE_FAILED\",\n        \"HANDLE_GRANT_VALIDATION_FAILED\",\n        \"STORAGE_FILE_FAILED\",\n        \"STORAGE_KV_FAILED\",\n        \"STORAGE_SQLITE_FAILED\",\n        \"NETWORK_GRANT_FAILED\",\n        \"NETWORK_EXECUTE_FAILED\",\n        \"NETWORK_STREAM_STORE_UNAVAILABLE\",\n        \"NETWORK_STREAM_FAILED\",\n        \"NETWORK_STREAM_BACKPRESSURE\",\n        \"NETWORK_STREAM_INVALID\",\n        \"NETWORK_STREAM_NOT_FOUND\",\n        \"NETWORK_STREAM_CLOSED\",\n        \"WORKER_INVOCATION_INVALID\",\n        \"RUNTIME_CAPABILITY_REVOKED\",\n        \"RUNTIME_CONTROL_CHANNEL_STALE\",\n        \"RUNTIME_LEASE_INVALID\",\n        \"RUNTIME_LEASE_SIGNATURE_INVALID\",\n        \"PLUGIN_LEASE_REPLAYED\",\n        \"WASM_WORKER_INVALID\",\n        \"WASM_WORKER_FAILED\",\n        \"WASM_HOSTCALL_FAILED\",\n        \"RUNTIME_CAPACITY_EXCEEDED\",\n        \"RUNTIME_INVOCATION_CANCELED\",\n        \"PLUGIN_SESSION_REVOKED\",\n        \"SESSION_REVOKE_SEQUENCE_STALE\",\n        \"SESSION_REVOKE_DRAIN_TIMEOUT\",\n        \"UNSUPPORTED_FRAME\"\n      ]\n    },\n    \"runtime_process_failure_code\": {\n      \"type\": \"string\",\n      \"enum\": [\n        \"RUNTIME_PROCESS_FAILED\",\n        \"RUNTIME_PROCESS_EXIT_UNEXPECTED\",\n        \"RUNTIME_PROCESS_EXIT_UNRECOGNIZED\",\n        \"RUNTIME_PROCESS_SIGNALLED\",\n        \"IPC_WRITER_CAPACITY_OVERFLOW\",\n        \"IPC_WRITER_CAPACITY_LIMIT_EXCEEDED\",\n        \"IPC_WRITER_START_FAILED\",\n        \"IPC_WRITER_CLOSED\",\n        \"IPC_WRITER_BATCH_SIZE_OVERFLOW\",\n        \"IPC_WRITER_WRITE_FAILED\",\n        \"IPC_WRITER_FLUSH_FAILED\",\n        \"IPC_WRITER_PANICKED\"\n      ]\n    },\n    \"runtime_process_exit_failure\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 1 },\n            \"code\": { \"const\": \"RUNTIME_PROCESS_FAILED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 80 },\n            \"code\": { \"const\": \"IPC_WRITER_CAPACITY_OVERFLOW\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 81 },\n            \"code\": { \"const\": \"IPC_WRITER_CAPACITY_LIMIT_EXCEEDED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 82 },\n            \"code\": { \"const\": \"IPC_WRITER_START_FAILED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 83 },\n            \"code\": { \"const\": \"IPC_WRITER_CLOSED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 84 },\n            \"code\": { \"const\": \"IPC_WRITER_BATCH_SIZE_OVERFLOW\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 85 },\n            \"code\": { \"const\": \"IPC_WRITER_WRITE_FAILED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 86 },\n            \"code\": { \"const\": \"IPC_WRITER_FLUSH_FAILED\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"required\": [\"exit_code\", \"code\"],\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"exit_code\": { \"const\": 87 },\n            \"code\": { \"const\": \"IPC_WRITER_PANICKED\" }\n          }\n        }\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_COMPATIBILITY_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-compatibility-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability compatibility v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"contract_id\",\n    \"contract_version\",\n    \"capability_id\",\n    \"capability_version\",\n    \"min_redevplugin_version\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.host_capability_compatibility.v1\" },\n    \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n    \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"min_redevplugin_version\": { \"$ref\": \"#/$defs/semver\" }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_CONTRACT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-contract-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability contract v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"contract_id\",\n    \"contract_version\",\n    \"publisher_id\",\n    \"capability_id\",\n    \"capability_version\",\n    \"client_name\",\n    \"methods\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.host_capability_contract.v1\" },\n    \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n    \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n    \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"client_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n    \"methods\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"items\": { \"$ref\": \"#/$defs/method\" }\n    },\n    \"errors\": {\n      \"type\": \"array\",\n      \"items\": { \"$ref\": \"#/$defs/business_error\" }\n    }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"typescript_declaration_identifier\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z_$][A-Za-z0-9_$]*$\",\n      \"not\": {\n        \"enum\": [\n          \"PluginBridgeClient\", \"PluginBridgeError\", \"PluginBridgeRequestOptions\", \"PluginOperation\", \"PluginStream\",\n          \"abstract\", \"accessor\", \"any\", \"as\", \"assert\", \"asserts\", \"async\", \"await\", \"bigint\", \"boolean\",\n          \"break\", \"case\", \"catch\", \"class\", \"const\", \"continue\", \"debugger\", \"declare\", \"default\", \"delete\",\n          \"do\", \"else\", \"enum\", \"export\", \"extends\", \"false\", \"finally\", \"for\", \"from\", \"function\", \"get\",\n          \"if\", \"implements\", \"import\", \"in\", \"infer\", \"instanceof\", \"interface\", \"intrinsic\", \"is\", \"keyof\",\n          \"let\", \"module\", \"namespace\", \"never\", \"new\", \"null\", \"number\", \"object\", \"of\", \"out\", \"override\",\n          \"package\", \"private\", \"protected\", \"public\", \"readonly\", \"require\", \"return\", \"satisfies\", \"set\", \"static\",\n          \"string\", \"super\", \"switch\", \"symbol\", \"this\", \"throw\", \"true\", \"try\", \"type\", \"typeof\", \"undefined\",\n          \"unique\", \"unknown\", \"using\", \"var\", \"void\", \"while\", \"with\", \"yield\",\n          \"callCapabilityOperation\", \"callCapabilityStream\", \"callCapabilitySync\", \"decodePluginStreamText\",\n          \"isCapabilityBusinessError\"\n        ]\n      }\n    },\n    \"typescript_member_identifier\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z_$][A-Za-z0-9_$]*$\",\n      \"not\": { \"const\": \"constructor\" }\n    },\n    \"string_set\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": { \"type\": \"string\", \"minLength\": 1, \"pattern\": \"^\\\\S+$\" }\n    },\n    \"method\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"name\",\n        \"client_method\",\n        \"effect\",\n        \"execution\",\n        \"target_fields\",\n        \"target_schema\",\n        \"request_type_name\",\n        \"response_type_name\",\n        \"request_schema\",\n        \"response_schema\",\n        \"quota\"\n      ],\n      \"properties\": {\n        \"name\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9_]*)+$\" },\n        \"client_method\": { \"$ref\": \"#/$defs/typescript_member_identifier\" },\n        \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n        \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n        \"preflight_only\": { \"type\": \"boolean\" },\n        \"required_permissions\": { \"$ref\": \"#/$defs/string_set\" },\n        \"target_fields\": { \"$ref\": \"#/$defs/string_set\" },\n        \"target_schema\": { \"$ref\": \"#/$defs/object_value_schema\" },\n        \"request_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n        \"response_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n        \"request_schema\": { \"$ref\": \"#/$defs/object_value_schema\" },\n        \"response_schema\": { \"$ref\": \"#/$defs/restricted_schema\" },\n        \"event_type_name\": { \"$ref\": \"#/$defs/typescript_declaration_identifier\" },\n        \"event_schema\": { \"$ref\": \"#/$defs/restricted_schema\" },\n        \"confirmation\": { \"$ref\": \"#/$defs/confirmation\" },\n        \"cancel_policy\": { \"$ref\": \"#/$defs/cancel_policy\" },\n        \"quota\": { \"$ref\": \"#/$defs/quota\" }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n          \"then\": { \"required\": [\"event_type_name\", \"event_schema\", \"cancel_policy\"] }\n        },\n        {\n          \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n          \"then\": { \"required\": [\"cancel_policy\"] }\n        },\n        {\n          \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n          \"then\": {\n            \"not\": {\n              \"anyOf\": [\n                { \"required\": [\"event_type_name\"] },\n                { \"required\": [\"event_schema\"] },\n                { \"required\": [\"cancel_policy\"] }\n              ]\n            }\n          }\n        }\n      ]\n    },\n    \"confirmation\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"mode\"],\n      \"properties\": {\n        \"mode\": { \"enum\": [\"required\", \"risk_based\"] },\n        \"preflight_method\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9]*(\\\\.[a-z][a-z0-9_]*)+$\" },\n        \"request_hash_fields\": { \"$ref\": \"#/$defs/string_set\" },\n        \"plan_hash_required\": { \"type\": \"boolean\" }\n      }\n    },\n    \"cancel_policy\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"cancelable\", \"disable_behavior\", \"uninstall_behavior\"],\n      \"properties\": {\n        \"cancelable\": { \"type\": \"boolean\" },\n        \"disable_behavior\": { \"enum\": [\"cancel\", \"orphan\", \"wait\"] },\n        \"uninstall_behavior\": { \"enum\": [\"cancel_then_block_delete\", \"force_cleanup_allowed\"] },\n        \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"quota\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"max_concurrent\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_duration_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_stream_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"business_error\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"code\", \"message\"],\n      \"properties\": {\n        \"code\": { \"type\": \"string\", \"pattern\": \"^[A-Z][A-Z0-9_]*$\" },\n        \"message\": { \"type\": \"string\", \"minLength\": 1 },\n        \"details_schema\": { \"$ref\": \"#/$defs/object_value_schema\" }\n      }\n    },\n    \"restricted_schema\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/object_schema\" },\n        { \"$ref\": \"#/$defs/array_schema\" },\n        { \"$ref\": \"#/$defs/string_schema\" },\n        { \"$ref\": \"#/$defs/integer_schema\" },\n        { \"$ref\": \"#/$defs/number_schema\" },\n        { \"$ref\": \"#/$defs/boolean_schema\" },\n        { \"$ref\": \"#/$defs/null_schema\" },\n        { \"$ref\": \"#/$defs/one_of_schema\" }\n      ]\n    },\n    \"object_value_schema\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/object_schema\" },\n        { \"$ref\": \"#/$defs/object_one_of_schema\" }\n      ]\n    },\n    \"object_one_of_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"oneOf\"],\n      \"properties\": {\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"oneOf\": {\n          \"type\": \"array\",\n          \"minItems\": 2,\n          \"maxItems\": 8,\n          \"items\": { \"$ref\": \"#/$defs/object_value_schema\" }\n        }\n      }\n    },\n    \"object_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"additionalProperties\"],\n      \"properties\": {\n        \"type\": { \"const\": \"object\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"properties\": {\n          \"type\": \"object\",\n          \"propertyNames\": { \"not\": { \"enum\": [\"__proto__\", \"constructor\", \"prototype\"] } },\n          \"additionalProperties\": { \"$ref\": \"#/$defs/restricted_schema\" }\n        },\n        \"required\": { \"$ref\": \"#/$defs/string_set\" },\n        \"additionalProperties\": { \"const\": false },\n        \"minProperties\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"maxProperties\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"array_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"items\"],\n      \"properties\": {\n        \"type\": { \"const\": \"array\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"items\": { \"$ref\": \"#/$defs/restricted_schema\" },\n        \"minItems\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"maxItems\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"uniqueItems\": { \"type\": \"boolean\" }\n      }\n    },\n    \"string_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": { \"const\": \"string\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"string\" } },\n        \"const\": { \"type\": \"string\" },\n        \"minLength\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"maxLength\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"pattern\": { \"type\": \"string\" },\n        \"format\": { \"enum\": [\"date-time\", \"uuid\", \"hostname\", \"ipv4\", \"ipv6\"] }\n      }\n    },\n    \"integer_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": { \"const\": \"integer\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"integer\" } },\n        \"const\": { \"type\": \"integer\" },\n        \"minimum\": { \"type\": \"integer\" },\n        \"maximum\": { \"type\": \"integer\" },\n        \"exclusiveMinimum\": { \"type\": \"integer\" },\n        \"exclusiveMaximum\": { \"type\": \"integer\" },\n        \"multipleOf\": { \"type\": \"integer\", \"exclusiveMinimum\": 0 }\n      }\n    },\n    \"number_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": { \"const\": \"number\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true, \"items\": { \"type\": \"number\" } },\n        \"const\": { \"type\": \"number\" },\n        \"minimum\": { \"type\": \"number\" },\n        \"maximum\": { \"type\": \"number\" },\n        \"exclusiveMinimum\": { \"type\": \"number\" },\n        \"exclusiveMaximum\": { \"type\": \"number\" },\n        \"multipleOf\": { \"type\": \"number\", \"exclusiveMinimum\": 0 }\n      }\n    },\n    \"boolean_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": { \"const\": \"boolean\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"const\": { \"type\": \"boolean\" }\n      }\n    },\n    \"null_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": {\n        \"type\": { \"const\": \"null\" },\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"const\": { \"type\": \"null\" }\n      }\n    },\n    \"one_of_schema\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"oneOf\"],\n      \"properties\": {\n        \"title\": { \"type\": \"string\" },\n        \"description\": { \"type\": \"string\" },\n        \"oneOf\": {\n          \"type\": \"array\",\n          \"minItems\": 2,\n          \"maxItems\": 8,\n          \"items\": { \"$ref\": \"#/$defs/restricted_schema\" }\n        }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_MANIFEST_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-manifest-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability artifact manifest v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"publisher_id\",\n    \"contract_id\",\n    \"contract_version\",\n    \"capability_id\",\n    \"capability_version\",\n    \"generated_at\",\n    \"source_commit\",\n    \"signature_algorithm\",\n    \"signature_key_id\",\n    \"signature_policy_epoch\",\n    \"signature_revocation_epoch\",\n    \"entries\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.host_capability_manifest.v1\" },\n    \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"capability_id\": { \"$ref\": \"#/$defs/id\" },\n    \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"source_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n    \"signature_algorithm\": { \"const\": \"ed25519\" },\n    \"signature_key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n    \"signature_revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n    \"entries\": {\n      \"type\": \"array\",\n      \"minItems\": 4,\n      \"maxItems\": 4,\n      \"items\": { \"$ref\": \"#/$defs/entry\" },\n      \"allOf\": [\n        { \"contains\": { \"properties\": { \"role\": { \"const\": \"contract\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n        { \"contains\": { \"properties\": { \"role\": { \"const\": \"compatibility\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n        { \"contains\": { \"properties\": { \"role\": { \"const\": \"generated_client\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 },\n        { \"contains\": { \"properties\": { \"role\": { \"const\": \"notices\" } }, \"required\": [\"role\"] }, \"minContains\": 1, \"maxContains\": 1 }\n      ]\n    }\n  },\n  \"$defs\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n    },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$\",\n      \"not\": { \"pattern\": \"(^|/)\\\\.{1,2}($|/)\" }\n    },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"decimal_epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"entry\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"role\", \"ref\", \"media_type\", \"sha256\", \"size\"],\n      \"properties\": {\n        \"role\": { \"enum\": [\"contract\", \"compatibility\", \"generated_client\", \"notices\"] },\n        \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n        \"media_type\": { \"enum\": [\"application/schema+json\", \"application/json\", \"text/typescript\"] },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"size\": { \"type\": \"integer\", \"minimum\": 0 }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"properties\": { \"role\": { \"const\": \"contract\" } }, \"required\": [\"role\"] },\n          \"then\": { \"properties\": { \"media_type\": { \"const\": \"application/schema+json\" } } }\n        },\n        {\n          \"if\": { \"properties\": { \"role\": { \"enum\": [\"compatibility\", \"notices\"] } }, \"required\": [\"role\"] },\n          \"then\": { \"properties\": { \"media_type\": { \"const\": \"application/json\" } } }\n        },\n        {\n          \"if\": { \"properties\": { \"role\": { \"const\": \"generated_client\" } }, \"required\": [\"role\"] },\n          \"then\": { \"properties\": { \"media_type\": { \"const\": \"text/typescript\" } } }\n        }\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_NOTICES_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-notices-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability third-party notices v1\",\n  \"type\": \"array\",\n  \"uniqueItems\": true,\n  \"items\": {\n    \"type\": \"object\",\n    \"additionalProperties\": false,\n    \"required\": [\"name\", \"version\", \"license\"],\n    \"properties\": {\n      \"name\": { \"type\": \"string\", \"minLength\": 1 },\n      \"version\": { \"type\": \"string\", \"minLength\": 1 },\n      \"license\": { \"type\": \"string\", \"minLength\": 1 },\n      \"source_url\": { \"type\": \"string\", \"format\": \"uri\" }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_PIN_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-pin-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability artifact pin v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"publisher_id\",\n    \"contract_id\",\n    \"contract_version\",\n    \"artifact_ref\",\n    \"artifact_sha256\",\n    \"manifest_ref\",\n    \"manifest_sha256\",\n    \"signature_ref\",\n    \"signature_sha256\",\n    \"signature_key_id\",\n    \"signature_policy_epoch\",\n    \"signature_revocation_epoch\",\n    \"compatibility_ref\",\n    \"compatibility_sha256\",\n    \"generated_client_ref\",\n    \"generated_client_sha256\",\n    \"notices_ref\",\n    \"notices_sha256\"\n  ],\n  \"properties\": {\n    \"publisher_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_id\": { \"$ref\": \"#/$defs/id\" },\n    \"contract_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"artifact_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"manifest_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"manifest_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signature_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"signature_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signature_key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n    \"signature_revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n    \"compatibility_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"compatibility_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"generated_client_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"generated_client_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"notices_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"notices_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n  },\n  \"$defs\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n    },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^[A-Za-z0-9._~-]+(?:/[A-Za-z0-9._~-]+)*$\",\n      \"not\": { \"pattern\": \"(^|/)\\\\.{1,2}($|/)\" }\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[0-9a-f]{64}$\"\n    },\n    \"decimal_epoch\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)$\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_HOST_CAPABILITY_SIGNATURE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/host-capability-signature-v1.schema.json\",\n  \"title\": \"ReDevPlugin host capability signature v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"algorithm\", \"key_id\", \"manifest_sha256\", \"signature_base64\"],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.host_capability_signature.v1\" },\n    \"algorithm\": { \"const\": \"ed25519\" },\n    \"key_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n    \"manifest_sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"signature_base64\": {\n      \"type\": \"string\",\n      \"minLength\": 88,\n      \"maxLength\": 88,\n      \"pattern\": \"^[A-Za-z0-9+/]{86}==$\",\n      \"contentEncoding\": \"base64\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_IFRAME_BRIDGE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/bridge-v5.schema.json\",\n  \"title\": \"ReDevPlugin plugin worker bridge v5\",\n  \"description\": \"Plugin-visible MessagePort contract. Plugin identity, owner/session bindings, gateway tokens, asset sessions, stream tickets, and confirmation tokens remain in the trusted parent and are intentionally absent from worker-visible messages.\",\n  \"x-redevplugin-render-policy\": {\n    \"max_message_bytes\": 524288,\n    \"max_in_flight_requests\": 256,\n    \"max_renders_per_second\": 60,\n    \"max_render_depth\": 32,\n    \"max_render_nodes\": 4096,\n    \"max_patch_operations\": 1024,\n    \"max_attributes_per_element\": 64,\n    \"max_text_length\": 65536,\n    \"max_attribute_value_length\": 4096,\n    \"max_form_fields\": 128,\n    \"max_canvas_count\": 4,\n    \"max_canvas_dimension\": 4096,\n    \"max_canvas_total_pixels\": 16777216,\n    \"max_canvas_pointer_events_per_second\": 120,\n    \"max_image_count\": 32,\n    \"max_image_dimension\": 4096,\n    \"max_image_total_pixels\": 33554432,\n    \"worker_heartbeat_interval_ms\": 10000,\n    \"worker_heartbeat_timeout_ms\": 5000,\n    \"global_attributes\": [\n      \"id\",\n      \"class\",\n      \"role\",\n      \"title\",\n      \"hidden\",\n      \"tabindex\",\n      \"autofocus\",\n      \"lang\",\n      \"dir\",\n      \"data-redevplugin-action\",\n      \"data-redevplugin-escape-action\",\n      \"data-redevplugin-asset-binding\",\n      \"data-redevplugin-asset-attr\"\n    ],\n    \"tag_attributes\": {\n      \"button\": [\"type\", \"name\", \"value\", \"disabled\", \"aria-pressed\", \"aria-expanded\"],\n      \"input\": [\"type\", \"name\", \"value\", \"checked\", \"disabled\", \"readonly\", \"required\", \"placeholder\", \"min\", \"max\", \"step\", \"autocomplete\"],\n      \"textarea\": [\"name\", \"value\", \"disabled\", \"readonly\", \"required\", \"placeholder\", \"rows\", \"cols\", \"maxlength\"],\n      \"select\": [\"name\", \"disabled\", \"required\", \"multiple\", \"size\"],\n      \"option\": [\"value\", \"selected\", \"disabled\", \"label\"],\n      \"label\": [\"for\"],\n      \"form\": [\"name\", \"autocomplete\"],\n      \"th\": [\"scope\", \"colspan\", \"rowspan\"],\n      \"td\": [\"colspan\", \"rowspan\"],\n      \"progress\": [\"value\", \"max\"],\n      \"meter\": [\"value\", \"min\", \"max\", \"low\", \"high\", \"optimum\"],\n      \"img\": [\"alt\", \"width\", \"height\", \"loading\", \"decoding\"],\n      \"audio\": [\"controls\", \"autoplay\", \"muted\", \"loop\", \"preload\"],\n      \"video\": [\"controls\", \"autoplay\", \"muted\", \"loop\", \"preload\", \"width\", \"height\", \"playsinline\"],\n      \"source\": [\"type\", \"media\"],\n      \"track\": [\"kind\", \"srclang\", \"label\", \"default\"],\n      \"time\": [\"datetime\"],\n      \"canvas\": [\"width\", \"height\", \"data-redevplugin-canvas\"]\n    },\n    \"safe_input_types\": [\"text\", \"search\", \"number\", \"checkbox\", \"radio\", \"button\", \"submit\", \"reset\"]\n  },\n  \"oneOf\": [\n    { \"$ref\": \"#/$defs/call\" },\n    { \"$ref\": \"#/$defs/stream_read\" },\n    { \"$ref\": \"#/$defs/stream_ack\" },\n    { \"$ref\": \"#/$defs/operation_cancel\" },\n    { \"$ref\": \"#/$defs/mount\" },\n    { \"$ref\": \"#/$defs/patch\" },\n    { \"$ref\": \"#/$defs/canvas_open\" },\n    { \"$ref\": \"#/$defs/canvas_accessibility\" },\n    { \"$ref\": \"#/$defs/canvas_ready\" },\n    { \"$ref\": \"#/$defs/canvas_input\" },\n    { \"$ref\": \"#/$defs/image_open\" },\n    { \"$ref\": \"#/$defs/image_ready\" },\n    { \"$ref\": \"#/$defs/cancel\" },\n    { \"$ref\": \"#/$defs/action\" },\n    { \"$ref\": \"#/$defs/response\" },\n    { \"$ref\": \"#/$defs/lifecycle\" },\n    { \"$ref\": \"#/$defs/lifecycle_ack\" }\n  ],\n  \"$defs\": {\n    \"opaque_handle\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{7,159}$\"\n    },\n    \"capability_business_error_details\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"capability_id\",\n        \"capability_version\",\n        \"detail_schema_sha256\",\n        \"business_error_code\"\n      ],\n      \"properties\": {\n        \"capability_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\" },\n        \"capability_version\": {\n          \"type\": \"string\",\n          \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n        },\n        \"detail_schema_sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n        \"business_error_code\": { \"type\": \"string\", \"pattern\": \"^[A-Z][A-Z0-9_]*$\" },\n        \"business_error_details\": {\n          \"type\": \"object\",\n          \"additionalProperties\": true\n        }\n      }\n    },\n    \"worker_error_details\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"worker_error_code\", \"worker_error_message\", \"worker_error_origin\"],\n      \"properties\": {\n        \"worker_error_code\": {\n          \"type\": \"string\",\n          \"pattern\": \"^[A-Z][A-Z0-9_]*$\"\n        },\n        \"worker_error_message\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 4096\n        },\n        \"worker_error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n      }\n    },\n    \"request_id\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(rpc|stream|stream_ack|render|operation|canvas|asset)_[1-9][0-9]{0,15}$\"\n    },\n    \"call\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"request\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.call\" },\n        \"request\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"id\", \"method\"],\n          \"properties\": {\n            \"id\": { \"$ref\": \"#/$defs/request_id\" },\n            \"method\": {\n              \"type\": \"string\",\n              \"minLength\": 1,\n              \"maxLength\": 256,\n              \"pattern\": \"^[A-Za-z0-9._:-]+$\"\n            },\n            \"params\": {\n              \"type\": \"object\",\n              \"description\": \"Optional JSON object. Arrays are rejected so worker calls match the Host RPC map contract.\"\n            }\n          }\n        }\n      }\n    },\n    \"stream_read\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"stream_handle\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.stream.read\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"stream_handle\": { \"$ref\": \"#/$defs/opaque_handle\" }\n      }\n    },\n    \"stream_ack\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"stream_handle\", \"delivery_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.stream.ack\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"stream_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"delivery_id\": { \"type\": \"string\", \"pattern\": \"^delivery_[A-Za-z0-9_-]{8,128}$\" }\n      }\n    },\n    \"operation_cancel\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"operation_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.operation.cancel\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"operation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"reason\": { \"type\": \"string\", \"maxLength\": 256 }\n      }\n    },\n    \"mount\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"revision\", \"tree\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.mount\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"revision\": { \"const\": 1 },\n        \"tree\": { \"$ref\": \"#/$defs/element_vnode\" }\n      }\n    },\n    \"patch\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"base_revision\", \"revision\", \"operations\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.patch\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"base_revision\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"revision\": { \"type\": \"integer\", \"minimum\": 2 },\n        \"operations\": {\n          \"type\": \"array\",\n          \"maxItems\": 1024,\n          \"items\": { \"$ref\": \"#/$defs/patch_operation\" }\n        }\n      }\n    },\n    \"cancel\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.cancel\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" }\n      }\n    },\n    \"vnode\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/text_vnode\" },\n        { \"$ref\": \"#/$defs/element_vnode\" }\n      ]\n    },\n    \"text_vnode\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"key\", \"text\"],\n      \"properties\": {\n        \"type\": { \"const\": \"text\" },\n        \"key\": { \"$ref\": \"#/$defs/text_identifier\" },\n        \"text\": { \"type\": \"string\", \"maxLength\": 65536 }\n      }\n    },\n    \"element_vnode\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"key\", \"tag\"],\n      \"properties\": {\n        \"type\": { \"const\": \"element\" },\n        \"key\": { \"$ref\": \"#/$defs/element_identifier\" },\n        \"tag\": {\n          \"enum\": [\n            \"main\", \"section\", \"header\", \"footer\", \"nav\", \"aside\", \"article\", \"div\", \"span\", \"p\",\n            \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"button\", \"input\", \"textarea\", \"select\", \"option\",\n            \"label\", \"fieldset\", \"legend\", \"form\", \"ul\", \"ol\", \"li\", \"dl\", \"dt\", \"dd\", \"table\",\n            \"thead\", \"tbody\", \"tfoot\", \"tr\", \"th\", \"td\", \"caption\", \"details\", \"summary\", \"pre\", \"code\",\n            \"kbd\", \"samp\", \"strong\", \"em\", \"small\", \"mark\", \"time\", \"progress\", \"meter\", \"img\", \"picture\",\n            \"source\", \"audio\", \"video\", \"track\", \"canvas\"\n          ]\n        },\n        \"attributes\": {\n          \"type\": \"object\",\n          \"maxProperties\": 64,\n          \"additionalProperties\": { \"type\": [\"string\", \"number\", \"boolean\"] }\n        },\n        \"children\": {\n          \"type\": \"array\",\n          \"maxItems\": 4096,\n          \"items\": { \"$ref\": \"#/$defs/vnode\" }\n        }\n      }\n    },\n    \"patch_operation\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"target_key\", \"text\"],\n          \"properties\": {\n            \"type\": { \"const\": \"set_text\" },\n            \"target_key\": { \"$ref\": \"#/$defs/text_identifier\" },\n            \"text\": { \"type\": \"string\", \"maxLength\": 65536 }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"target_key\", \"set\", \"remove\"],\n          \"properties\": {\n            \"type\": { \"const\": \"patch_attributes\" },\n            \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n            \"set\": { \"type\": \"object\", \"maxProperties\": 64, \"additionalProperties\": { \"type\": [\"string\", \"number\", \"boolean\"] } },\n            \"remove\": { \"type\": \"array\", \"maxItems\": 64, \"uniqueItems\": true, \"items\": { \"type\": \"string\", \"minLength\": 1 } }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"target_key\", \"edit_revision\"],\n          \"properties\": {\n            \"type\": { \"const\": \"patch_control\" },\n            \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n            \"edit_revision\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"value\": { \"type\": [\"string\", \"null\"], \"maxLength\": 65536 },\n            \"checked\": { \"type\": [\"boolean\", \"null\"] }\n          },\n          \"anyOf\": [{ \"required\": [\"value\"] }, { \"required\": [\"checked\"] }]\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"parent_key\", \"before_key\", \"node\"],\n          \"properties\": {\n            \"type\": { \"const\": \"insert_child\" },\n            \"parent_key\": { \"$ref\": \"#/$defs/element_identifier\" },\n            \"before_key\": {\n              \"oneOf\": [\n                { \"$ref\": \"#/$defs/ui_identifier\" },\n                { \"type\": \"null\" }\n              ]\n            },\n            \"node\": { \"$ref\": \"#/$defs/vnode\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"target_key\"],\n          \"properties\": {\n            \"type\": { \"const\": \"remove_child\" },\n            \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"target_key\", \"parent_key\", \"before_key\"],\n          \"properties\": {\n            \"type\": { \"const\": \"move_child\" },\n            \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n            \"parent_key\": { \"$ref\": \"#/$defs/element_identifier\" },\n            \"before_key\": {\n              \"oneOf\": [\n                { \"$ref\": \"#/$defs/ui_identifier\" },\n                { \"type\": \"null\" }\n              ]\n            }\n          }\n        }\n      ]\n    },\n    \"canvas_open\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"canvas_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.canvas.open\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" }\n      }\n    },\n    \"canvas_accessibility\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"canvas_id\", \"label\", \"description\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.canvas.accessibility\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n        \"label\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 },\n        \"description\": { \"type\": \"string\", \"maxLength\": 1024 }\n      }\n    },\n    \"canvas_ready\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"canvas_id\", \"canvas\", \"css_width\", \"css_height\", \"device_pixel_ratio\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.canvas.ready\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n        \"canvas\": {\n          \"description\": \"One transferred OffscreenCanvas. The runtime validates the structured-clone object outside JSON Schema.\"\n        },\n        \"css_width\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n        \"css_height\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n        \"device_pixel_ratio\": { \"type\": \"number\", \"minimum\": 0.5, \"maximum\": 4 }\n      },\n      \"x-redevplugin-transfer\": [\"canvas\"]\n    },\n    \"canvas_input\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"canvas_id\", \"event\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.canvas.input\" },\n        \"canvas_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n        \"event\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"type\"],\n              \"properties\": { \"type\": { \"enum\": [\"focus\", \"blur\"] } }\n            },\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"type\", \"css_width\", \"css_height\", \"device_pixel_ratio\"],\n              \"properties\": {\n                \"type\": { \"const\": \"resize\" },\n                \"css_width\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n                \"css_height\": { \"type\": \"number\", \"exclusiveMinimum\": 0, \"maximum\": 4096 },\n                \"device_pixel_ratio\": { \"type\": \"number\", \"minimum\": 0.5, \"maximum\": 4 }\n              }\n            },\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"type\", \"event\", \"code\", \"key\", \"repeat\", \"alt_key\", \"ctrl_key\", \"meta_key\", \"shift_key\"],\n              \"properties\": {\n                \"type\": { \"const\": \"key\" },\n                \"event\": { \"enum\": [\"keydown\", \"keyup\"] },\n                \"code\": { \"type\": \"string\", \"maxLength\": 64 },\n                \"key\": { \"type\": \"string\", \"maxLength\": 64 },\n                \"repeat\": { \"type\": \"boolean\" },\n                \"alt_key\": { \"type\": \"boolean\" },\n                \"ctrl_key\": { \"type\": \"boolean\" },\n                \"meta_key\": { \"type\": \"boolean\" },\n                \"shift_key\": { \"type\": \"boolean\" }\n              }\n            },\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"type\", \"event\", \"pointer_id\", \"pointer_type\", \"buttons\", \"button\", \"x\", \"y\", \"pressure\"],\n              \"properties\": {\n                \"type\": { \"const\": \"pointer\" },\n                \"event\": { \"enum\": [\"pointerdown\", \"pointermove\", \"pointerup\", \"pointercancel\"] },\n                \"pointer_id\": { \"type\": \"integer\", \"minimum\": 0 },\n                \"pointer_type\": { \"enum\": [\"mouse\", \"pen\", \"touch\", \"unknown\"] },\n                \"buttons\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 31 },\n                \"button\": { \"type\": \"integer\", \"minimum\": -1, \"maximum\": 4 },\n                \"x\": { \"type\": \"number\", \"minimum\": -16384, \"maximum\": 32768 },\n                \"y\": { \"type\": \"number\", \"minimum\": -16384, \"maximum\": 32768 },\n                \"pressure\": { \"type\": \"number\", \"minimum\": 0, \"maximum\": 1 }\n              }\n            }\n          ]\n        }\n      }\n    },\n    \"image_open\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"asset_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.asset.image.open\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"asset_id\": { \"$ref\": \"#/$defs/ui_identifier\" }\n      }\n    },\n    \"image_ready\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"id\", \"asset_id\", \"image\", \"width\", \"height\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.asset.image.ready\" },\n        \"id\": { \"$ref\": \"#/$defs/request_id\" },\n        \"asset_id\": { \"$ref\": \"#/$defs/ui_identifier\" },\n        \"image\": {\n          \"description\": \"One transferred ImageBitmap decoded from Host-verified package bytes.\"\n        },\n        \"width\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 4096 },\n        \"height\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 4096 }\n      },\n      \"x-redevplugin-transfer\": [\"image\"]\n    },\n    \"ui_identifier\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]*$\"\n    },\n    \"element_identifier\": {\n      \"$ref\": \"#/$defs/ui_identifier\"\n    },\n    \"text_identifier\": {\n      \"$ref\": \"#/$defs/ui_identifier\"\n    },\n    \"action\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"action\", \"event\", \"target_key\", \"edit_revision\", \"is_composing\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.ui.action\" },\n        \"action\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 128,\n          \"pattern\": \"^[A-Za-z0-9._:-]+$\"\n        },\n        \"event\": { \"enum\": [\"click\", \"input\", \"change\", \"submit\", \"escape\"] },\n        \"target_key\": { \"$ref\": \"#/$defs/ui_identifier\" },\n        \"edit_revision\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"is_composing\": { \"type\": \"boolean\" },\n        \"value\": { \"type\": \"string\", \"maxLength\": 65536 },\n        \"checked\": { \"type\": \"boolean\" },\n        \"form_data\": {\n          \"type\": \"object\",\n          \"maxProperties\": 128,\n          \"additionalProperties\": { \"type\": \"string\", \"maxLength\": 65536 }\n        }\n      }\n    },\n    \"response\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"id\", \"ok\"],\n          \"properties\": {\n            \"type\": { \"const\": \"redevplugin.bridge.response\" },\n            \"id\": { \"$ref\": \"#/$defs/request_id\" },\n            \"ok\": { \"const\": true },\n            \"data\": true\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\", \"id\", \"ok\", \"error_code\", \"error\"],\n          \"properties\": {\n            \"type\": { \"const\": \"redevplugin.bridge.response\" },\n            \"id\": { \"$ref\": \"#/$defs/request_id\" },\n            \"ok\": { \"const\": false },\n            \"error_code\": {\n              \"enum\": [\n                \"PLUGIN_INVALID_REQUEST\",\n                \"PLUGIN_MANIFEST_INVALID\",\n                \"PLUGIN_PACKAGE_INVALID\",\n                \"PLUGIN_PACKAGE_TOO_LARGE\",\n                \"PLUGIN_PACKAGE_PATH_FORBIDDEN\",\n                \"PLUGIN_SIGNATURE_INVALID\",\n                \"PLUGIN_TRUST_STATE_DENIED\",\n                \"PLUGIN_TRUST_VERIFICATION_REQUIRED\",\n                \"PLUGIN_TRUST_VERIFICATION_INVALID\",\n                \"PLUGIN_RELEASE_REF_VERIFICATION_FAILED\",\n                \"PLUGIN_RELEASE_REF_POLICY_DENIED\",\n                \"PLUGIN_DISABLED\",\n                \"PLUGIN_DISABLED_BY_POLICY\",\n                \"PLUGIN_PERMISSION_DENIED\",\n                \"PLUGIN_ORIGIN_DENIED\",\n                \"PLUGIN_ACTION_DENIED\",\n                \"PLUGIN_OWNER_SCOPE_MISMATCH\",\n                \"PLUGIN_SECRET_SCOPE_MISMATCH\",\n                \"PLUGIN_STORAGE_SCOPE_MISMATCH\",\n                \"PLUGIN_ADAPTER_FAILURE\",\n                \"PLUGIN_SESSION_REVOKED\",\n                \"PLUGIN_SESSION_TEARDOWN_INCOMPLETE\",\n                \"PLUGIN_SESSION_FENCE_CAPACITY\",\n                \"PLUGIN_CONFIRMATION_REQUIRED\",\n                \"PLUGIN_CONFIRMATION_INVALID\",\n                \"PLUGIN_TOKEN_EXPIRED\",\n                \"PLUGIN_TOKEN_REPLAY\",\n                \"PLUGIN_GATEWAY_TOKEN_INVALID\",\n                \"PLUGIN_GATEWAY_TOKEN_REPLAYED\",\n                \"PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\",\n                \"PLUGIN_ASSET_TICKET_INVALID\",\n                \"PLUGIN_ASSET_SESSION_INVALID\",\n                \"PLUGIN_STREAM_TICKET_INVALID\",\n                \"PLUGIN_STREAM_DELIVERY_INVALID\",\n                \"PLUGIN_STREAM_CANCELLED\",\n                \"PLUGIN_LEASE_INVALID\",\n                \"PLUGIN_LEASE_REPLAYED\",\n                \"PLUGIN_GRANT_INVALID\",\n                \"PLUGIN_STORAGE_QUOTA_EXCEEDED\",\n                \"PLUGIN_OPERATION_BLOCKED\",\n                \"PLUGIN_OPERATION_NOT_FOUND\",\n                \"PLUGIN_OPERATION_NOT_CANCELABLE\",\n                \"PLUGIN_NETWORK_TARGET_DENIED\",\n                \"PLUGIN_NETWORK_RATE_LIMITED\",\n                \"PLUGIN_RUNTIME_UNAVAILABLE\",\n                \"PLUGIN_RUNTIME_VERSION_MISMATCH\",\n                \"PLUGIN_RUNTIME_CONTRACT_MISMATCH\",\n                \"PLUGIN_UI_PROTOCOL_UNSUPPORTED\",\n                \"PLUGIN_UI_PROTOCOL_VIOLATION\",\n                \"PLUGIN_SURFACE_QUIESCE_TIMEOUT\",\n                \"PLUGIN_JSON_LIMIT_EXCEEDED\",\n                \"PLUGIN_CAPABILITY_ERROR\",\n                \"PLUGIN_WORKER_ERROR\",\n                \"PLUGIN_CONTRACT_MISMATCH\",\n                \"PLUGIN_MANAGEMENT_REVISION_MISMATCH\",\n                \"PLUGIN_AUTHORIZATION_REVISION_MISMATCH\",\n                \"PLUGIN_BINDING_REVISION_MISMATCH\",\n                \"PLUGIN_VALUES_REVISION_MISMATCH\",\n                \"PLUGIN_CSRF_REQUIRED\",\n                \"PLUGIN_CSRF_INVALID\",\n                \"PLUGIN_FEATURE_NOT_CONFIGURED\",\n                \"PLUGIN_CONFIRMATION_REJECTED\",\n                \"PLUGIN_BRIDGE_CANCELLED\",\n                \"PLUGIN_BRIDGE_TIMEOUT\",\n                \"PLUGIN_BRIDGE_DISPOSED\",\n                \"PLUGIN_BRIDGE_HANDSHAKE_FAILED\",\n                \"PLUGIN_BRIDGE_HANDSHAKE_REQUIRED\"\n              ]\n            },\n            \"error\": { \"type\": \"string\", \"maxLength\": 4096 },\n            \"error_details\": {\n              \"type\": \"object\",\n              \"maxProperties\": 8,\n              \"additionalProperties\": true\n            },\n            \"mutation_outcome\": { \"type\": \"string\", \"enum\": [\"not_committed\", \"unknown\"] }\n          },\n          \"allOf\": [\n            {\n              \"if\": {\n                \"properties\": { \"error_code\": { \"const\": \"PLUGIN_CAPABILITY_ERROR\" } },\n                \"required\": [\"error_code\"]\n              },\n              \"then\": {\n                \"required\": [\"error_details\"],\n                \"properties\": {\n                  \"error_details\": { \"$ref\": \"#/$defs/capability_business_error_details\" }\n                }\n              }\n            },\n            {\n              \"if\": {\n                \"properties\": { \"error_code\": { \"const\": \"PLUGIN_WORKER_ERROR\" } },\n                \"required\": [\"error_code\"]\n              },\n              \"then\": {\n                \"required\": [\"error_details\"],\n                \"properties\": {\n                  \"error_details\": { \"$ref\": \"#/$defs/worker_error_details\" }\n                }\n              }\n            }\n          ]\n        }\n      ]\n    },\n    \"lifecycle\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"event\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.lifecycle\" },\n        \"quiesce_id\": { \"type\": \"string\", \"pattern\": \"^quiesce_[A-Za-z0-9_-]{8,151}$\" },\n        \"event\": {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"type\"],\n          \"properties\": {\n            \"type\": { \"enum\": [\"ready\", \"visible\", \"hidden\", \"dispose\"] }\n          }\n        }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"required\": [\"quiesce_id\"] },\n          \"then\": {\n            \"properties\": {\n              \"event\": {\n                \"properties\": { \"type\": { \"const\": \"dispose\" } }\n              }\n            }\n          }\n        }\n      ]\n    },\n    \"lifecycle_ack\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"quiesce_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.bridge.lifecycle_ack\" },\n        \"quiesce_id\": { \"type\": \"string\", \"pattern\": \"^quiesce_[A-Za-z0-9_-]{8,151}$\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_MANIFEST_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/manifest-v5.schema.json\",\n  \"title\": \"ReDevPlugin manifest v5\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"publisher\", \"plugin\", \"surfaces\"],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.manifest.v5\" },\n    \"publisher\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"publisher_id\"],\n      \"properties\": {\n        \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"display_name\": { \"type\": \"string\" }\n      }\n    },\n    \"plugin\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"plugin_id\", \"display_name\", \"version\", \"api_version\", \"min_runtime_version\", \"ui_protocol_version\"],\n      \"properties\": {\n        \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"display_name\": { \"type\": \"string\", \"minLength\": 1 },\n        \"version\": { \"$ref\": \"#/$defs/semver\" },\n        \"api_version\": { \"const\": \"plugin-v1\" },\n        \"min_runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n        \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" }\n      }\n    },\n    \"surfaces\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"surface_id\", \"kind\", \"label\", \"entry\"],\n        \"properties\": {\n          \"surface_id\": { \"type\": \"string\", \"minLength\": 1 },\n          \"kind\": { \"enum\": [\"view\", \"command\", \"background\"] },\n          \"intent\": { \"enum\": [\"primary\", \"secondary\", \"utility\"] },\n          \"label\": { \"type\": \"string\", \"minLength\": 1 },\n          \"entry\": { \"type\": \"string\", \"minLength\": 1 },\n          \"icon\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"pattern\": \"^[A-Za-z0-9_][A-Za-z0-9_.-]*(?:/[A-Za-z0-9_][A-Za-z0-9_.-]*)*\\\\.(?:[Pp][Nn][Gg]|[Jj][Pp][Gg]|[Jj][Pp][Ee][Gg]|[Gg][Ii][Ff]|[Ww][Ee][Bb][Pp]|[Ii][Cc][Oo])$\"\n          },\n          \"default_size\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"width\", \"height\"],\n            \"properties\": {\n              \"width\": { \"type\": \"integer\", \"minimum\": 1 },\n              \"height\": { \"type\": \"integer\", \"minimum\": 1 }\n            }\n          }\n        }\n      }\n    },\n    \"capability_bindings\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"binding_id\", \"contract\"],\n        \"properties\": {\n          \"binding_id\": { \"type\": \"string\", \"minLength\": 1 },\n          \"contract\": { \"$ref\": \"host-capability-pin-v1.schema.json\" }\n        }\n      }\n    },\n    \"methods\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"method\", \"route\"],\n        \"properties\": {\n          \"method\": { \"type\": \"string\", \"minLength\": 1 },\n          \"effect\": { \"enum\": [\"read\", \"write\", \"delete\", \"execute\", \"admin\"] },\n          \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n          \"dangerous\": { \"type\": \"boolean\" },\n          \"preflight_only\": { \"type\": \"boolean\" },\n          \"broker_access\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"properties\": {\n              \"storage\": {\n                \"type\": \"array\",\n                \"uniqueItems\": true,\n                \"items\": {\n                  \"type\": \"object\",\n                  \"additionalProperties\": false,\n                  \"required\": [\"store_id\", \"operations\"],\n                  \"properties\": {\n                    \"store_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n                    \"operations\": {\n                      \"type\": \"array\",\n                      \"minItems\": 1,\n                      \"uniqueItems\": true,\n                      \"items\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\", \"get\", \"put\", \"query\", \"exec\"] }\n                    }\n                  }\n                }\n              },\n              \"network\": {\n                \"type\": \"array\",\n                \"uniqueItems\": true,\n                \"items\": {\n                  \"type\": \"object\",\n                  \"additionalProperties\": false,\n                  \"required\": [\"connector_id\", \"transport\", \"operations\"],\n                  \"properties\": {\n                    \"connector_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n                    \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n                    \"operations\": {\n                      \"type\": \"array\",\n                      \"minItems\": 1,\n                      \"uniqueItems\": true,\n                      \"items\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] }\n                    },\n                    \"http_methods\": {\n                      \"type\": \"array\",\n                      \"minItems\": 1,\n                      \"uniqueItems\": true,\n                      \"items\": { \"enum\": [\"GET\", \"HEAD\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"] }\n                    }\n                  },\n                  \"allOf\": [\n                    {\n                      \"if\": { \"properties\": { \"transport\": { \"const\": \"http\" } }, \"required\": [\"transport\"] },\n                      \"then\": { \"required\": [\"http_methods\"] },\n                      \"else\": { \"not\": { \"required\": [\"http_methods\"] } }\n                    }\n                  ]\n                }\n              }\n            }\n          },\n          \"route\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"kind\"],\n            \"properties\": {\n              \"kind\": { \"enum\": [\"capability\", \"worker\", \"core_action\"] },\n              \"binding_id\": { \"type\": \"string\", \"minLength\": 1 },\n              \"target_method\": { \"type\": \"string\", \"minLength\": 1 },\n              \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n              \"action_id\": { \"type\": \"string\", \"minLength\": 1 }\n            },\n            \"allOf\": [\n              {\n                \"if\": { \"properties\": { \"kind\": { \"const\": \"capability\" } }, \"required\": [\"kind\"] },\n                \"then\": {\n                  \"required\": [\"binding_id\", \"target_method\"],\n                  \"not\": {\n                    \"anyOf\": [\n                      { \"required\": [\"worker_id\"] },\n                      { \"required\": [\"action_id\"] }\n                    ]\n                  }\n                }\n              },\n              {\n                \"if\": { \"properties\": { \"kind\": { \"const\": \"worker\" } }, \"required\": [\"kind\"] },\n                \"then\": {\n                  \"required\": [\"worker_id\"],\n                  \"not\": {\n                    \"anyOf\": [\n                      { \"required\": [\"binding_id\"] },\n                      { \"required\": [\"target_method\"] },\n                      { \"required\": [\"action_id\"] }\n                    ]\n                  }\n                }\n              },\n              {\n                \"if\": { \"properties\": { \"kind\": { \"const\": \"core_action\" } }, \"required\": [\"kind\"] },\n                \"then\": {\n                  \"required\": [\"action_id\"],\n                  \"not\": {\n                    \"anyOf\": [\n                      { \"required\": [\"binding_id\"] },\n                      { \"required\": [\"target_method\"] },\n                      { \"required\": [\"worker_id\"] }\n                    ]\n                  }\n                }\n              }\n            ]\n          },\n          \"confirmation\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"mode\"],\n            \"properties\": {\n              \"mode\": { \"enum\": [\"none\", \"required\", \"risk_based\"] },\n              \"preflight_method\": { \"type\": [\"string\", \"null\"] },\n              \"request_hash_fields\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n              \"plan_hash_required\": { \"type\": \"boolean\" }\n            }\n          },\n          \"cancel_policy\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"cancelable\"],\n            \"properties\": {\n              \"cancelable\": { \"type\": \"boolean\" },\n              \"disable_behavior\": { \"enum\": [\"cancel\", \"orphan\", \"wait\"] },\n              \"uninstall_behavior\": { \"enum\": [\"cancel_then_block_delete\", \"force_cleanup_allowed\"] },\n              \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n            },\n            \"allOf\": [\n              {\n                \"if\": { \"properties\": { \"cancelable\": { \"const\": true } }, \"required\": [\"cancelable\"] },\n                \"then\": {\n                  \"required\": [\"ack_timeout_ms\"],\n                  \"properties\": { \"ack_timeout_ms\": { \"type\": \"integer\", \"minimum\": 1 } }\n                }\n              },\n              {\n                \"if\": { \"properties\": { \"cancelable\": { \"const\": false } }, \"required\": [\"cancelable\"] },\n                \"then\": {\n                  \"properties\": { \"ack_timeout_ms\": { \"const\": 0 } }\n                }\n              }\n            ]\n          },\n          \"request_schema\": {\n            \"allOf\": [\n              { \"$ref\": \"#/$defs/method_schema\" },\n              {\n                \"type\": \"object\",\n                \"required\": [\"type\", \"additionalProperties\"],\n                \"properties\": {\n                  \"type\": { \"const\": \"object\" },\n                  \"additionalProperties\": { \"const\": false }\n                }\n              }\n            ]\n          },\n          \"response_schema\": {\n            \"allOf\": [\n              { \"$ref\": \"#/$defs/method_schema\" },\n              {\n                \"type\": \"object\",\n                \"required\": [\"type\", \"additionalProperties\"],\n                \"properties\": {\n                  \"type\": { \"const\": \"object\" },\n                  \"additionalProperties\": { \"const\": false }\n                }\n              }\n            ]\n          }\n        },\n        \"allOf\": [\n          {\n            \"if\": { \"properties\": { \"dangerous\": { \"const\": true } }, \"required\": [\"dangerous\"] },\n            \"then\": {\n              \"required\": [\"confirmation\"],\n              \"properties\": {\n                \"confirmation\": {\n                  \"properties\": {\n                    \"mode\": { \"enum\": [\"required\", \"risk_based\"] }\n                  }\n                }\n              }\n            }\n          },\n          {\n            \"if\": {\n              \"properties\": {\n                \"route\": {\n                  \"properties\": { \"kind\": { \"const\": \"capability\" } },\n                  \"required\": [\"kind\"]\n                }\n              },\n              \"required\": [\"route\"]\n            },\n            \"then\": {\n              \"not\": {\n                \"anyOf\": [\n                  { \"required\": [\"effect\"] },\n                  { \"required\": [\"execution\"] },\n                  { \"required\": [\"dangerous\"] },\n                  { \"required\": [\"preflight_only\"] },\n                  { \"required\": [\"confirmation\"] },\n                  { \"required\": [\"cancel_policy\"] },\n                  { \"required\": [\"request_schema\"] },\n                  { \"required\": [\"response_schema\"] },\n                  { \"required\": [\"broker_access\"] }\n                ]\n              }\n            },\n            \"else\": {\n              \"required\": [\"effect\", \"execution\", \"request_schema\", \"response_schema\"]\n            }\n          },\n          {\n            \"if\": { \"properties\": { \"preflight_only\": { \"const\": true } }, \"required\": [\"preflight_only\"] },\n            \"then\": {\n              \"properties\": {\n                \"effect\": { \"const\": \"read\" },\n                \"execution\": { \"const\": \"sync\" },\n                \"dangerous\": { \"const\": false }\n              }\n            }\n          },\n          {\n            \"if\": { \"properties\": { \"execution\": { \"enum\": [\"operation\", \"subscription\"] } }, \"required\": [\"execution\"] },\n            \"then\": { \"required\": [\"cancel_policy\"] }\n          }\n        ]\n      }\n    },\n    \"workers\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"worker_id\", \"artifact\", \"abi\", \"mode\", \"scope\", \"memory_limit_bytes\"],\n        \"properties\": {\n          \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n          \"artifact\": { \"type\": \"string\", \"minLength\": 1 },\n          \"abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n          \"mode\": { \"const\": \"job\" },\n          \"scope\": { \"enum\": [\"user\", \"environment\"] },\n          \"memory_limit_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 268435456 },\n          \"idle_timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n        }\n      }\n    },\n    \"storage\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"stores\": {\n          \"type\": \"array\",\n          \"maxItems\": 16,\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"store_id\", \"kind\", \"scope\", \"quota_bytes\", \"schema_version\"],\n            \"properties\": {\n              \"store_id\": { \"type\": \"string\", \"minLength\": 1 },\n              \"kind\": { \"enum\": [\"kv\", \"files\", \"sqlite\"] },\n              \"scope\": { \"enum\": [\"user\", \"environment\"] },\n              \"quota_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 1073741824 },\n              \"quota_files\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 100000 },\n              \"schema_version\": { \"type\": \"integer\", \"minimum\": 1 }\n            }\n          }\n        }\n      }\n    },\n    \"network_access\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"connectors\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"connector_id\", \"transport\", \"scope\", \"destinations\"],\n            \"properties\": {\n              \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n              \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n              \"scope\": { \"enum\": [\"user\", \"environment\"] },\n              \"destinations\": { \"type\": \"array\", \"items\": { \"type\": \"string\", \"minLength\": 1 } },\n              \"auth\": { \"type\": \"object\" },\n              \"tls\": { \"type\": \"object\" }\n            }\n          }\n        }\n      }\n    },\n    \"settings\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\"],\n      \"properties\": {\n        \"schema_version\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"fields\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"key\", \"type\", \"scope\", \"label\"],\n            \"properties\": {\n              \"key\": { \"type\": \"string\", \"minLength\": 1 },\n              \"type\": { \"type\": \"string\", \"minLength\": 1 },\n              \"scope\": { \"enum\": [\"user\", \"environment\"] },\n              \"label\": { \"type\": \"string\", \"minLength\": 1 },\n              \"default\": true,\n              \"secret_ref\": { \"type\": \"string\" },\n              \"options\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } },\n              \"validation\": { \"type\": \"object\" }\n            }\n          }\n        }\n      }\n    },\n    \"intents\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"intent_id\", \"method\"],\n        \"properties\": {\n          \"intent_id\": { \"type\": \"string\", \"minLength\": 1 },\n          \"method\": { \"type\": \"string\", \"minLength\": 1 },\n          \"payload_schema\": { \"type\": \"object\" }\n        }\n      }\n    }\n  },\n  \"$defs\": {\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"method_schema\": {\n      \"oneOf\": [\n        { \"const\": false },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"properties\": {\n            \"$comment\": { \"type\": \"string\" },\n            \"title\": { \"type\": \"string\" },\n            \"description\": { \"type\": \"string\" },\n            \"readOnly\": { \"type\": \"boolean\" },\n            \"writeOnly\": { \"type\": \"boolean\" },\n            \"$ref\": { \"type\": \"string\", \"pattern\": \"^#/\\\\$defs/[A-Za-z0-9._-]+$\" },\n            \"$defs\": {\n              \"type\": \"object\",\n              \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"type\": {\n              \"oneOf\": [\n                { \"enum\": [\"null\", \"boolean\", \"object\", \"array\", \"number\", \"integer\", \"string\"] },\n                {\n                  \"type\": \"array\",\n                  \"minItems\": 1,\n                  \"uniqueItems\": true,\n                  \"items\": { \"enum\": [\"null\", \"boolean\", \"object\", \"array\", \"number\", \"integer\", \"string\"] }\n                }\n              ]\n            },\n            \"properties\": {\n              \"type\": \"object\",\n              \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"patternProperties\": {\n              \"type\": \"object\",\n              \"additionalProperties\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"required\": {\n              \"type\": \"array\",\n              \"uniqueItems\": true,\n              \"items\": { \"type\": \"string\" }\n            },\n            \"additionalProperties\": { \"const\": false },\n            \"items\": { \"$ref\": \"#/$defs/method_schema\" },\n            \"allOf\": {\n              \"type\": \"array\",\n              \"minItems\": 1,\n              \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"anyOf\": {\n              \"type\": \"array\",\n              \"minItems\": 1,\n              \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"oneOf\": {\n              \"type\": \"array\",\n              \"minItems\": 1,\n              \"items\": { \"$ref\": \"#/$defs/method_schema\" }\n            },\n            \"enum\": { \"type\": \"array\", \"minItems\": 1, \"uniqueItems\": true },\n            \"const\": true,\n            \"default\": true,\n            \"examples\": { \"type\": \"array\" },\n            \"minimum\": { \"type\": \"number\" },\n            \"maximum\": { \"type\": \"number\" },\n            \"exclusiveMinimum\": { \"type\": \"number\" },\n            \"exclusiveMaximum\": { \"type\": \"number\" },\n            \"multipleOf\": { \"type\": \"number\", \"exclusiveMinimum\": 0 },\n            \"minLength\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"maxLength\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"pattern\": { \"type\": \"string\" },\n            \"format\": { \"type\": \"string\" },\n            \"minItems\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"maxItems\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"uniqueItems\": { \"type\": \"boolean\" },\n            \"minProperties\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"maxProperties\": { \"type\": \"integer\", \"minimum\": 0 }\n          },\n          \"anyOf\": [\n            { \"required\": [\"type\"] },\n            { \"required\": [\"$ref\"] },\n            { \"required\": [\"properties\"] },\n            { \"required\": [\"patternProperties\"] },\n            { \"required\": [\"required\"] },\n            { \"required\": [\"additionalProperties\"] },\n            { \"required\": [\"minProperties\"] },\n            { \"required\": [\"maxProperties\"] },\n            { \"required\": [\"allOf\"] },\n            { \"required\": [\"anyOf\"] },\n            { \"required\": [\"oneOf\"] },\n            { \"required\": [\"enum\"] },\n            { \"required\": [\"const\"] }\n          ],\n          \"allOf\": [\n            {\n              \"if\": {\n                \"required\": [\"type\"],\n                \"properties\": {\n                  \"type\": {\n                    \"anyOf\": [\n                      { \"const\": \"object\" },\n                      { \"type\": \"array\", \"contains\": { \"const\": \"object\" } }\n                    ]\n                  }\n                }\n              },\n              \"then\": {\n                \"required\": [\"additionalProperties\"],\n                \"properties\": { \"additionalProperties\": { \"const\": false } }\n              }\n            },\n            {\n              \"if\": {\n                \"anyOf\": [\n                  { \"required\": [\"properties\"] },\n                  { \"required\": [\"patternProperties\"] },\n                  { \"required\": [\"required\"] },\n                  { \"required\": [\"additionalProperties\"] },\n                  { \"required\": [\"minProperties\"] },\n                  { \"required\": [\"maxProperties\"] }\n                ]\n              },\n              \"then\": {\n                \"required\": [\"additionalProperties\"],\n                \"properties\": { \"additionalProperties\": { \"const\": false } }\n              }\n            }\n          ]\n        }\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_NETWORK_GRANT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/network-grant-v2.schema.json\",\n  \"title\": \"ReDevPlugin network grant v2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"grant_id\",\n    \"plugin_instance_id\",\n    \"active_fingerprint\",\n    \"resource_scope\",\n    \"policy_revision\",\n    \"management_revision\",\n    \"revoke_epoch\",\n    \"connector_id\",\n    \"transport\",\n    \"destination\",\n    \"target_classifier_version\",\n    \"expires_at\"\n  ],\n  \"properties\": {\n    \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n    \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n    \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n    \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n    \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n    \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n    \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n    \"destination\": { \"$ref\": \"#/$defs/destination\" },\n    \"runtime_generation_id\": { \"type\": \"string\" },\n    \"target_classifier_version\": { \"const\": \"target-classifier-v2\" },\n    \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n  },\n  \"$defs\": {\n    \"resource_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"kind\", \"owner_env_hash\"],\n      \"properties\": {\n        \"kind\": { \"enum\": [\"user\", \"environment\"] },\n        \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n        \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n      },\n      \"oneOf\": [\n        { \"properties\": { \"kind\": { \"const\": \"user\" } }, \"required\": [\"owner_user_hash\"] },\n        { \"properties\": { \"kind\": { \"const\": \"environment\" } }, \"not\": { \"required\": [\"owner_user_hash\"] } }\n      ]\n    },\n    \"destination\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"transport\", \"host\", \"port\"],\n      \"properties\": {\n        \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n        \"scheme\": { \"enum\": [\"http\", \"https\", \"ws\", \"wss\"] },\n        \"host\": { \"type\": \"string\", \"minLength\": 1 },\n        \"port\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 65535 }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_OPAQUE_SURFACE_DOCUMENT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-document-v3.schema.json\",\n  \"title\": \"ReDevPlugin opaque surface document v3\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"entry_path\",\n    \"entry_sha256\",\n    \"body_html\",\n    \"styles\",\n    \"worker\",\n    \"assets\",\n    \"critical_bytes\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.opaque_surface_document.v3\" },\n    \"entry_path\": { \"$ref\": \"#/$defs/package_path\" },\n    \"entry_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"title\": { \"type\": \"string\", \"maxLength\": 256 },\n    \"language\": { \"type\": \"string\", \"maxLength\": 64 },\n    \"direction\": { \"enum\": [\"ltr\", \"rtl\", \"auto\"] },\n    \"body_html\": { \"type\": \"string\", \"maxLength\": 4194304 },\n    \"styles\": {\n      \"type\": \"array\",\n      \"items\": { \"$ref\": \"#/$defs/style\" }\n    },\n    \"worker\": { \"$ref\": \"#/$defs/worker\" },\n    \"assets\": {\n      \"type\": \"array\",\n      \"maxItems\": 128,\n      \"items\": { \"$ref\": \"#/$defs/asset\" }\n    },\n    \"critical_bytes\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 8388608\n    }\n  },\n  \"$defs\": {\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n    },\n    \"package_path\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 512,\n      \"pattern\": \"^.+$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"^/\" },\n          { \"pattern\": \"\\\\\\\\\" },\n          { \"pattern\": \"(^|/)\\\\.\\\\.?(/|$)\" }\n        ]\n      }\n    },\n    \"style\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"path\", \"sha256\", \"content\"],\n      \"properties\": {\n        \"path\": { \"$ref\": \"#/$defs/package_path\" },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"content\": { \"type\": \"string\", \"maxLength\": 2097152 }\n      }\n    },\n    \"worker\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"path\", \"sha256\", \"type\", \"content\"],\n      \"properties\": {\n        \"path\": { \"$ref\": \"#/$defs/package_path\" },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"type\": { \"const\": \"classic\" },\n        \"content\": { \"type\": \"string\", \"maxLength\": 4194304 }\n      }\n    },\n    \"asset\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"binding_id\", \"logical_ids\", \"path\", \"sha256\", \"size\", \"content_type\"],\n      \"properties\": {\n        \"binding_id\": {\n          \"type\": \"string\",\n          \"pattern\": \"^asset_[A-Za-z0-9_-]{8,154}$\"\n        },\n        \"logical_ids\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 16,\n          \"uniqueItems\": true,\n          \"items\": {\n            \"type\": \"string\",\n            \"minLength\": 1,\n            \"maxLength\": 128,\n            \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]*$\"\n          }\n        },\n        \"path\": { \"$ref\": \"#/$defs/package_path\" },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"size\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 33554432 },\n        \"content_type\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_OPAQUE_SURFACE_TRANSPORT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-transport-v4.schema.json\",\n  \"title\": \"ReDevPlugin private opaque surface transport v4\",\n  \"description\": \"Private messages between the trusted parent, trusted renderer, and isolated plugin worker. MessagePort transfer is represented by the envelope; transferable ports are not JSON values.\",\n  \"oneOf\": [\n    { \"$ref\": \"#/$defs/port_envelope\" },\n    { \"$ref\": \"#/$defs/port_ack\" },\n    { \"$ref\": \"#/$defs/initialize\" },\n    { \"$ref\": \"#/$defs/first_paint\" },\n    { \"$ref\": \"#/$defs/first_commit\" },\n    { \"$ref\": \"#/$defs/worker_ready\" },\n    { \"$ref\": \"#/$defs/surface_error\" },\n    { \"$ref\": \"#/$defs/asset_read\" },\n    { \"$ref\": \"#/$defs/asset_response\" },\n    { \"$ref\": \"#/$defs/worker_initialize\" }\n  ],\n  \"$defs\": {\n    \"opaque_handle\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z][A-Za-z0-9_-]{7,159}$\"\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n    },\n    \"port_envelope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"frame_generation_id\", \"ui_protocol_version\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.port\" },\n        \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" }\n      }\n    },\n    \"port_ack\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"frame_generation_id\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.port_ack\" },\n        \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" }\n      }\n    },\n    \"initialize\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"frame_generation_id\", \"surface_handle\", \"document\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.initialize\" },\n        \"frame_generation_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"surface_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"document\": {\n          \"$ref\": \"https://schemas.redevplugin.dev/plugin/opaque-surface-document-v3.schema.json\"\n        }\n      }\n    },\n    \"first_paint\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": { \"type\": { \"const\": \"redevplugin.surface.first_paint\" } }\n    },\n    \"first_commit\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": { \"type\": { \"const\": \"redevplugin.surface.first_commit\" } }\n    },\n    \"worker_ready\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\"],\n      \"properties\": { \"type\": { \"const\": \"redevplugin.surface.worker_ready\" } }\n    },\n    \"surface_error\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"error\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.error\" },\n        \"error\": { \"type\": \"string\", \"maxLength\": 512 }\n      }\n    },\n    \"asset_read\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"request_id\", \"binding_id\", \"path\", \"sha256\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.asset.read\" },\n        \"request_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"binding_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"path\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512 },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    },\n    \"asset_response\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"request_id\", \"binding_id\", \"ok\", \"path\", \"sha256\", \"content_type\", \"content_base64\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.surface.asset.response\" },\n        \"request_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"binding_id\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"ok\": { \"const\": true },\n        \"path\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512 },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"content_type\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 256 },\n        \"content_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n      }\n    },\n    \"worker_initialize\": {\n      \"description\": \"Transferred ports are ordered as runtime_control then plugin_bridge; only plugin_bridge is exposed through the worker SDK claim.\",\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"type\", \"surface_handle\", \"ui_protocol_version\", \"port_roles\"],\n      \"properties\": {\n        \"type\": { \"const\": \"redevplugin.worker.initialize\" },\n        \"surface_handle\": { \"$ref\": \"#/$defs/opaque_handle\" },\n        \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" },\n        \"port_roles\": {\n          \"type\": \"array\",\n          \"prefixItems\": [\n            { \"const\": \"runtime_control\" },\n            { \"const\": \"plugin_bridge\" }\n          ],\n          \"minItems\": 2,\n          \"maxItems\": 2\n        }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_OWNER_SCOPE_INVENTORY_REGISTRY: &[u8] = "{\n  \"schema_version\": \"owner-scope-inventory-v1\",\n  \"inventories\": [\n    {\n      \"id\": \"redeven-redevplugin-v0.1.0-v0.1.5-layout-v1\",\n      \"platform_versions\": [\n        \"0.1.0\",\n        \"0.1.1\",\n        \"0.1.2\",\n        \"0.1.3\",\n        \"0.1.4\",\n        \"0.1.5\"\n      ],\n      \"root_entries\": [\n        {\n          \"path\": \"assets\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"db\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"storage\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        }\n      ],\n      \"sqlite_databases\": [\n        {\n          \"path\": \"db/browser_site.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_browser_site_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_browser_site_plugin_instance\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE INDEX idx_plugin_browser_site_plugin_instance ON plugin_browser_site_origins(plugin_instance_id, state, origin)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_browser_site_state\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE INDEX idx_plugin_browser_site_state ON plugin_browser_site_origins(state, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_browser_site_origins\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE TABLE plugin_browser_site_origins ( origin_key TEXT PRIMARY KEY, plugin_instance_id TEXT NOT NULL, plugin_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, origin TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, state TEXT NOT NULL, cleanup_reason TEXT NOT NULL, cleanup_error TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, last_seen_at INTEGER NOT NULL, cleanup_requested_at INTEGER, cleaned_at INTEGER, retained_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_browser_site_schema_migrations\",\n              \"table_name\": \"plugin_browser_site_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_browser_site_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"a7767aacbc70799ee6f847077e27727cac70ae2fdbb84cae2e0fae2d9ab5bffa\"\n        },\n        {\n          \"path\": \"db/cleanup.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_cleanup_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_cleanup_operations_plugin\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_operations\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_schema_migrations\",\n              \"table_name\": \"plugin_cleanup_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n        },\n        {\n          \"path\": \"db/confirmation_intents.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_confirmation_intent_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intents\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n        },\n        {\n          \"path\": \"db/install_stage.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_install_stage_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_plugin\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_status_expiry\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stage_schema_migrations\",\n              \"table_name\": \"plugin_install_stage_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stages\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n        },\n        {\n          \"path\": \"db/observability.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_observability_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin_instance\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_surface\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_audit_events\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_diagnostic_events\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_meta\",\n              \"table_name\": \"plugin_observability_meta\",\n              \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_schema_migrations\",\n              \"table_name\": \"plugin_observability_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n        },\n        {\n          \"path\": \"db/operations.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_operation_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_status\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operation_schema_migrations\",\n              \"table_name\": \"plugin_operation_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operations\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n        },\n        {\n          \"path\": \"db/permissions.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_permission_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_plugin\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_revoked\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_grants\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_schema_migrations\",\n              \"table_name\": \"plugin_permission_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n        },\n        {\n          \"path\": \"db/registry.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 1,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_registry_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_deleted_at\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_plugin_id\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_records\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_registry_schema_migrations\",\n              \"table_name\": \"plugin_registry_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"70b12092bd87a03c8506b174f3a4528ef74a5f953f813b1829b586cdef108cda\"\n        },\n        {\n          \"path\": \"db/retained_data.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_retained_data_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_expiry\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_identity\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_source\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_records\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, browser_site_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_schema_migrations\",\n              \"table_name\": \"plugin_retained_data_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"1cdb02a3c5cb5870aadd332de06582df4fcddad098a0b731271beddbc38237b7\"\n        },\n        {\n          \"path\": \"db/secrets.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_secret_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_secret_bindings_plugin\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_bindings\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_schema_migrations\",\n              \"table_name\": \"plugin_secret_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n        },\n        {\n          \"path\": \"db/security_policy.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_security_policy_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policies\",\n              \"table_name\": \"plugin_security_policies\",\n              \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_allowed_permissions\",\n              \"table_name\": \"plugin_security_policy_allowed_permissions\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_denied_methods\",\n              \"table_name\": \"plugin_security_policy_denied_methods\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_schema_migrations\",\n              \"table_name\": \"plugin_security_policy_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n        },\n        {\n          \"path\": \"db/settings.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_settings_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_archives_source\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_records_state\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_archives\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_meta\",\n              \"table_name\": \"plugin_settings_meta\",\n              \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_records\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_schema_migrations\",\n              \"table_name\": \"plugin_settings_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n        },\n        {\n          \"path\": \"db/streams.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_stream_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_stream_events_stream_sequence\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_status\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_events\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_schema_migrations\",\n              \"table_name\": \"plugin_stream_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_streams\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n        }\n      ],\n      \"tree_rules\": {\n        \"allowed_kinds\": [\n          \"directory\",\n          \"file\"\n        ],\n        \"allow_sqlite_wal_shm\": true,\n        \"reject_hardlinks\": true,\n        \"reject_symlinks\": true,\n        \"variable_trees\": [\n          \"assets\",\n          \"storage\"\n        ]\n      }\n    },\n    {\n      \"id\": \"redeven-redevplugin-v0.1.6-layout-v1\",\n      \"platform_versions\": [\n        \"0.1.6\"\n      ],\n      \"root_entries\": [\n        {\n          \"path\": \"assets\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"db\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"storage\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        }\n      ],\n      \"sqlite_databases\": [\n        {\n          \"path\": \"db/browser_site.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_browser_site_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_browser_site_plugin_instance\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE INDEX idx_plugin_browser_site_plugin_instance ON plugin_browser_site_origins(plugin_instance_id, state, origin)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_browser_site_state\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE INDEX idx_plugin_browser_site_state ON plugin_browser_site_origins(state, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_browser_site_origins\",\n              \"table_name\": \"plugin_browser_site_origins\",\n              \"sql\": \"CREATE TABLE plugin_browser_site_origins ( origin_key TEXT PRIMARY KEY, plugin_instance_id TEXT NOT NULL, plugin_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, origin TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, state TEXT NOT NULL, cleanup_reason TEXT NOT NULL, cleanup_error TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, last_seen_at INTEGER NOT NULL, cleanup_requested_at INTEGER, cleaned_at INTEGER, retained_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_browser_site_schema_migrations\",\n              \"table_name\": \"plugin_browser_site_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_browser_site_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"a7767aacbc70799ee6f847077e27727cac70ae2fdbb84cae2e0fae2d9ab5bffa\"\n        },\n        {\n          \"path\": \"db/cleanup.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_cleanup_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_cleanup_operations_plugin\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_operations\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_schema_migrations\",\n              \"table_name\": \"plugin_cleanup_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n        },\n        {\n          \"path\": \"db/confirmation_intents.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_confirmation_intent_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intents\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n        },\n        {\n          \"path\": \"db/install_stage.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_install_stage_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_plugin\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_status_expiry\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stage_schema_migrations\",\n              \"table_name\": \"plugin_install_stage_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stages\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n        },\n        {\n          \"path\": \"db/observability.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_observability_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin_instance\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_surface\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_audit_events\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_diagnostic_events\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_meta\",\n              \"table_name\": \"plugin_observability_meta\",\n              \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_schema_migrations\",\n              \"table_name\": \"plugin_observability_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n        },\n        {\n          \"path\": \"db/operations.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_operation_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_status\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operation_schema_migrations\",\n              \"table_name\": \"plugin_operation_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operations\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n        },\n        {\n          \"path\": \"db/permissions.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_permission_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_plugin\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_revoked\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_grants\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_schema_migrations\",\n              \"table_name\": \"plugin_permission_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n        },\n        {\n          \"path\": \"db/registry.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 5,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_registry_schema_migrations\",\n              \"versions\": [\n                1,\n                2,\n                3,\n                4,\n                5\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_deleted_at\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_plugin_id\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_records\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_registry_schema_migrations\",\n              \"table_name\": \"plugin_registry_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_source_security_floors\",\n              \"table_name\": \"plugin_source_security_floors\",\n              \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"e04fe43561aa4e42626060f74912c0fae5dca60a23f32b95e2c219a37b722a3f\"\n        },\n        {\n          \"path\": \"db/retained_data.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_retained_data_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_expiry\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_identity\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_source\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_records\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, browser_site_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_schema_migrations\",\n              \"table_name\": \"plugin_retained_data_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"1cdb02a3c5cb5870aadd332de06582df4fcddad098a0b731271beddbc38237b7\"\n        },\n        {\n          \"path\": \"db/secrets.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_secret_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_secret_bindings_plugin\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_bindings\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_schema_migrations\",\n              \"table_name\": \"plugin_secret_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n        },\n        {\n          \"path\": \"db/security_policy.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_security_policy_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policies\",\n              \"table_name\": \"plugin_security_policies\",\n              \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_allowed_permissions\",\n              \"table_name\": \"plugin_security_policy_allowed_permissions\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_denied_methods\",\n              \"table_name\": \"plugin_security_policy_denied_methods\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_schema_migrations\",\n              \"table_name\": \"plugin_security_policy_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n        },\n        {\n          \"path\": \"db/settings.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_settings_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_archives_source\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_records_state\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_archives\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_meta\",\n              \"table_name\": \"plugin_settings_meta\",\n              \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_records\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_schema_migrations\",\n              \"table_name\": \"plugin_settings_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n        },\n        {\n          \"path\": \"db/streams.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_stream_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_stream_events_stream_sequence\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_status\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_events\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_schema_migrations\",\n              \"table_name\": \"plugin_stream_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_streams\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n        }\n      ],\n      \"tree_rules\": {\n        \"allowed_kinds\": [\n          \"directory\",\n          \"file\"\n        ],\n        \"allow_sqlite_wal_shm\": true,\n        \"reject_hardlinks\": true,\n        \"reject_symlinks\": true,\n        \"variable_trees\": [\n          \"assets\",\n          \"storage\"\n        ]\n      }\n    },\n    {\n      \"id\": \"redeven-redevplugin-v0.2.x-layout-v1\",\n      \"platform_versions\": [\n        \"0.2.0\",\n        \"0.2.1\",\n        \"0.2.2\"\n      ],\n      \"root_entries\": [\n        {\n          \"path\": \"assets\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"db\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"storage\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        }\n      ],\n      \"sqlite_databases\": [\n        {\n          \"path\": \"db/cleanup.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_cleanup_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_cleanup_operations_plugin\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_operations\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_schema_migrations\",\n              \"table_name\": \"plugin_cleanup_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n        },\n        {\n          \"path\": \"db/confirmation_intents.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_confirmation_intent_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intents\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dac56fde008efc7d6a21154c5bfbbd43183a8411e0fad20946e88a7550287781\"\n        },\n        {\n          \"path\": \"db/install_stage.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_install_stage_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_plugin\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_status_expiry\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stage_schema_migrations\",\n              \"table_name\": \"plugin_install_stage_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stages\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n        },\n        {\n          \"path\": \"db/observability.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_observability_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin_instance\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_surface\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_audit_events\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_diagnostic_events\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_meta\",\n              \"table_name\": \"plugin_observability_meta\",\n              \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_schema_migrations\",\n              \"table_name\": \"plugin_observability_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n        },\n        {\n          \"path\": \"db/operations.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_operation_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_status\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operation_schema_migrations\",\n              \"table_name\": \"plugin_operation_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operations\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, status TEXT NOT NULL, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"6b89150e03769f618c994f6906f4b588cfaf95159bfd111bd44cfde37b7ff681\"\n        },\n        {\n          \"path\": \"db/permissions.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_permission_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_plugin\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_revoked\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_grants\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_schema_migrations\",\n              \"table_name\": \"plugin_permission_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n        },\n        {\n          \"path\": \"db/registry.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 5,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_registry_schema_migrations\",\n              \"versions\": [\n                1,\n                2,\n                3,\n                4,\n                5\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_deleted_at\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_plugin_id\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_records\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_registry_schema_migrations\",\n              \"table_name\": \"plugin_registry_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_source_security_floors\",\n              \"table_name\": \"plugin_source_security_floors\",\n              \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"e04fe43561aa4e42626060f74912c0fae5dca60a23f32b95e2c219a37b722a3f\"\n        },\n        {\n          \"path\": \"db/retained_data.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_retained_data_schema_migrations\",\n              \"versions\": [\n                2\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_expiry\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_identity\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_source\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_records\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_schema_migrations\",\n              \"table_name\": \"plugin_retained_data_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"b89b7188f7e7d96827750396b1fbf807b607695d342e87a5d5c5aefb832cb1d6\"\n        },\n        {\n          \"path\": \"db/secrets.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_secret_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_secret_bindings_plugin\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_bindings\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_schema_migrations\",\n              \"table_name\": \"plugin_secret_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n        },\n        {\n          \"path\": \"db/security_policy.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_security_policy_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policies\",\n              \"table_name\": \"plugin_security_policies\",\n              \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_allowed_permissions\",\n              \"table_name\": \"plugin_security_policy_allowed_permissions\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_denied_methods\",\n              \"table_name\": \"plugin_security_policy_denied_methods\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_schema_migrations\",\n              \"table_name\": \"plugin_security_policy_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n        },\n        {\n          \"path\": \"db/settings.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_settings_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_archives_source\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_records_state\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_archives\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_meta\",\n              \"table_name\": \"plugin_settings_meta\",\n              \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_records\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_schema_migrations\",\n              \"table_name\": \"plugin_settings_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n        },\n        {\n          \"path\": \"db/streams.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_stream_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_stream_events_stream_sequence\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_status\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_events\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_schema_migrations\",\n              \"table_name\": \"plugin_stream_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_streams\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, direction TEXT NOT NULL, status TEXT NOT NULL, content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"7d2200868c7bd271be8a78cd42aea861bdc2fe46dbc714b08bb4d6251c7510d9\"\n        }\n      ],\n      \"tree_rules\": {\n        \"allowed_kinds\": [\n          \"directory\",\n          \"file\"\n        ],\n        \"allow_sqlite_wal_shm\": true,\n        \"reject_hardlinks\": true,\n        \"reject_symlinks\": true,\n        \"variable_trees\": [\n          \"assets\",\n          \"storage\"\n        ]\n      }\n    },\n    {\n      \"id\": \"redeven-redevplugin-v0.3.x-v0.4.x-layout-v1\",\n      \"platform_versions\": [\n        \"0.3.0\",\n        \"0.3.1\",\n        \"0.3.2\",\n        \"0.4.0\",\n        \"0.4.1\",\n        \"0.4.2\",\n        \"0.4.3\"\n      ],\n      \"root_entries\": [\n        {\n          \"path\": \"assets\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"db\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"storage\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        }\n      ],\n      \"sqlite_databases\": [\n        {\n          \"path\": \"db/cleanup.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_cleanup_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_cleanup_operations_plugin\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_cleanup_operations_plugin ON plugin_cleanup_operations(plugin_instance_id, id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_operations\",\n              \"table_name\": \"plugin_cleanup_operations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_operations ( id INTEGER PRIMARY KEY AUTOINCREMENT, plugin_instance_id TEXT NOT NULL, delete_data INTEGER NOT NULL, phase TEXT NOT NULL, executed_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_cleanup_schema_migrations\",\n              \"table_name\": \"plugin_cleanup_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_cleanup_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"492e855ac577c347fd5c4a916b4be060d08e9703d9deec197bcb1a75a0de9dcc\"\n        },\n        {\n          \"path\": \"db/confirmation_intents.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_confirmation_intent_schema_migrations\",\n              \"versions\": [\n                2\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"table_name\": \"plugin_confirmation_intent_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intent_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intents\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, scope_json TEXT NOT NULL DEFAULT '{}', issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dcf763fdc6333835180e6f38565d3d07b8b769100cdcfbec265d1a3d474ab479\"\n        },\n        {\n          \"path\": \"db/install_stage.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_install_stage_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_plugin\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_status_expiry\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(status, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stage_schema_migrations\",\n              \"table_name\": \"plugin_install_stage_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_install_stage_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stages\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE TABLE plugin_install_stages ( stage_id TEXT PRIMARY KEY, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"ee0192641f33bba6c7fc5994d73e2a64e77c129406bd3c2ccfc840780c3cef6a\"\n        },\n        {\n          \"path\": \"db/observability.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_observability_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin ON plugin_audit_events(plugin_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_plugin_instance\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_audit_plugin_instance ON plugin_audit_events(plugin_instance_id, type, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_surface\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_audit_events\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_diagnostic_events\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_meta\",\n              \"table_name\": \"plugin_observability_meta\",\n              \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_schema_migrations\",\n              \"table_name\": \"plugin_observability_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_observability_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"00e4363c85aaab3cb78d9b357e835490f82975233ee44643a3e238d337da4784\"\n        },\n        {\n          \"path\": \"db/operations.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_operation_schema_migrations\",\n              \"versions\": [\n                2,\n                3\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at, operation_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_status\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_status ON plugin_operations(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operation_schema_migrations\",\n              \"table_name\": \"plugin_operation_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_operation_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operations\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', status TEXT NOT NULL, cancelable INTEGER NOT NULL DEFAULT 1, cancel_ack_timeout_ms INTEGER NOT NULL DEFAULT 0, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"7d5d2e372f7a8ded7678f87bbc115d4c2b69d07de7b8b6eb929bad94b516ac1c\"\n        },\n        {\n          \"path\": \"db/permissions.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_permission_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_plugin\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_plugin ON plugin_permission_grants(plugin_instance_id, permission_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_permission_grants_revoked\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE INDEX idx_plugin_permission_grants_revoked ON plugin_permission_grants(plugin_instance_id, revoked_at, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_grants\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE TABLE plugin_permission_grants ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_schema_migrations\",\n              \"table_name\": \"plugin_permission_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_permission_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"d0b89affc5139c3ae28f0bd178094ceef0046f25b9b27f9b4e1b231624436f46\"\n        },\n        {\n          \"path\": \"db/registry.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 6,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_registry_schema_migrations\",\n              \"versions\": [\n                1,\n                2,\n                3,\n                4,\n                5,\n                6\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_deleted_at\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(deleted_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_plugin_id\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(plugin_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_records\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE TABLE plugin_records ( plugin_instance_id TEXT PRIMARY KEY, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', capability_contracts_json TEXT NOT NULL DEFAULT '[]', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, retained_data_state TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_registry_schema_migrations\",\n              \"table_name\": \"plugin_registry_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_registry_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_source_security_floors\",\n              \"table_name\": \"plugin_source_security_floors\",\n              \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"84f9a634f65a3efa7c3bc42b2625e77a26d854153f6d9ae6031f7b172a430b1e\"\n        },\n        {\n          \"path\": \"db/retained_data.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_retained_data_schema_migrations\",\n              \"versions\": [\n                2\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_expiry\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_expiry ON plugin_retained_data_records(state, delete_after)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_identity\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_identity ON plugin_retained_data_records(publisher_id, plugin_id, state)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_retained_data_source\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_retained_data_source ON plugin_retained_data_records(source_plugin_instance_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_records\",\n              \"table_name\": \"plugin_retained_data_records\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_records ( retained_id TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, bound_plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, state TEXT NOT NULL, storage_retained INTEGER NOT NULL, settings_retained INTEGER NOT NULL, usage_bytes INTEGER NOT NULL, delete_after INTEGER, delete_error TEXT NOT NULL, metadata_json TEXT NOT NULL, retained_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, bound_at INTEGER, deleted_at INTEGER, last_accessed_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_retained_data_schema_migrations\",\n              \"table_name\": \"plugin_retained_data_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_retained_data_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"b89b7188f7e7d96827750396b1fbf807b607695d342e87a5d5c5aefb832cb1d6\"\n        },\n        {\n          \"path\": \"db/secrets.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_secret_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_secret_bindings_plugin\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(plugin_instance_id, bound, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_bindings\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE TABLE plugin_secret_bindings ( plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, scope, secret_ref) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_schema_migrations\",\n              \"table_name\": \"plugin_secret_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_secret_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"82a9d6ab404b4d3dc485ef1ea9c95530af4460a48506e47ced81953c4b12dd50\"\n        },\n        {\n          \"path\": \"db/security_policy.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_security_policy_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policies\",\n              \"table_name\": \"plugin_security_policies\",\n              \"sql\": \"CREATE TABLE plugin_security_policies ( plugin_instance_id TEXT PRIMARY KEY, updated_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_allowed_permissions\",\n              \"table_name\": \"plugin_security_policy_allowed_permissions\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, permission_id), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_denied_methods\",\n              \"table_name\": \"plugin_security_policy_denied_methods\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(plugin_instance_id, method), FOREIGN KEY(plugin_instance_id) REFERENCES plugin_security_policies(plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_schema_migrations\",\n              \"table_name\": \"plugin_security_policy_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"8718fac16ca2cf37e84edd53f6d1c646f2d42e028af2dcc7aee05bdd9bc22dd6\"\n        },\n        {\n          \"path\": \"db/settings.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_settings_schema_migrations\",\n              \"versions\": [\n                1\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_archives_source\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_archives_source ON plugin_settings_archives(source_plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_settings_records_state\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_settings_records_state ON plugin_settings_records(state, retained_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_archives\",\n              \"table_name\": \"plugin_settings_archives\",\n              \"sql\": \"CREATE TABLE plugin_settings_archives ( archive_ref TEXT PRIMARY KEY, source_plugin_instance_id TEXT NOT NULL, include_secrets INTEGER NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_meta\",\n              \"table_name\": \"plugin_settings_meta\",\n              \"sql\": \"CREATE TABLE plugin_settings_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), next_export INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_records\",\n              \"table_name\": \"plugin_settings_records\",\n              \"sql\": \"CREATE TABLE plugin_settings_records ( plugin_instance_id TEXT PRIMARY KEY, state TEXT NOT NULL, schema_version INTEGER NOT NULL, settings_revision INTEGER NOT NULL, updated_at INTEGER NOT NULL, retained_at INTEGER, payload_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_settings_schema_migrations\",\n              \"table_name\": \"plugin_settings_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_settings_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"dba0083a1fa88135d6ab50cd0176063688134e684577563022200906a0d5702a\"\n        },\n        {\n          \"path\": \"db/streams.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [\n            {\n              \"table\": \"plugin_stream_schema_migrations\",\n              \"versions\": [\n                2,\n                3\n              ]\n            }\n          ],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_stream_events_stream_sequence\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_stream_events_stream_sequence ON plugin_stream_events(stream_id, sequence)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_status\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_status ON plugin_streams(status)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_events\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_schema_migrations\",\n              \"table_name\": \"plugin_stream_schema_migrations\",\n              \"sql\": \"CREATE TABLE plugin_stream_schema_migrations ( version INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_streams\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', direction TEXT NOT NULL, status TEXT NOT NULL, reason TEXT NOT NULL DEFAULT '', content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"955856942aa0c74f96a1f1e02f7b406f71007d4eff40e7d6836d45ba85459690\"\n        }\n      ],\n      \"tree_rules\": {\n        \"allowed_kinds\": [\n          \"directory\",\n          \"file\"\n        ],\n        \"allow_sqlite_wal_shm\": true,\n        \"reject_hardlinks\": true,\n        \"reject_symlinks\": true,\n        \"variable_trees\": [\n          \"assets\",\n          \"storage\"\n        ]\n      }\n    },\n    {\n      \"id\": \"redeven-redevplugin-v0.5.x-layout-v1\",\n      \"platform_versions\": [\n        \"0.5.0\",\n        \"0.5.1\"\n      ],\n      \"root_entries\": [\n        {\n          \"path\": \"assets\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"db\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        },\n        {\n          \"path\": \"storage\",\n          \"kind\": \"directory\",\n          \"scope\": \"durable\",\n          \"disposition\": \"quarantine\"\n        }\n      ],\n      \"sqlite_databases\": [\n        {\n          \"path\": \"db/confirmation_intents.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_expires_at\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_expires_at ON plugin_confirmation_intents(expires_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_confirmation_intents_plugin_instance\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE INDEX idx_plugin_confirmation_intents_plugin_instance ON plugin_confirmation_intents(plugin_instance_id, issued_at, confirmation_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_confirmation_intents\",\n              \"table_name\": \"plugin_confirmation_intents\",\n              \"sql\": \"CREATE TABLE plugin_confirmation_intents ( confirmation_id TEXT PRIMARY KEY, confirmation_token_id TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, method TEXT NOT NULL, request_hash TEXT NOT NULL, plan_hash TEXT NOT NULL, scope_json TEXT NOT NULL DEFAULT '{}', issued_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"7eb520796c80550cceab8b71f8394f831122baaa1ac7a098420be86a4ad53cc9\"\n        },\n        {\n          \"path\": \"db/install_stage.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_plugin\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_plugin ON plugin_install_stages(owner_env_hash, plugin_instance_id, created_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_install_stages_status_expiry\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE INDEX idx_plugin_install_stages_status_expiry ON plugin_install_stages(owner_env_hash, status, expires_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_install_stages\",\n              \"table_name\": \"plugin_install_stages\",\n              \"sql\": \"CREATE TABLE plugin_install_stages ( owner_env_hash TEXT NOT NULL, stage_id TEXT NOT NULL, action TEXT NOT NULL, status TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, requested_trust TEXT NOT NULL, resolved_trust TEXT NOT NULL, validation_summary_json TEXT NOT NULL, error_code TEXT NOT NULL, error_message TEXT NOT NULL, expires_at INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, finished_at INTEGER, PRIMARY KEY(owner_env_hash, stage_id) )\"\n            }\n          ],\n          \"schema_sha256\": \"aa45772cf36b9005142d210fb2e1a2b2b23a9012ed25cd587ad8d89235f2134b\"\n        },\n        {\n          \"path\": \"db/observability.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_audit_event_id\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE UNIQUE INDEX idx_plugin_audit_event_id ON plugin_audit_events(event_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_owner\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_owner ON plugin_diagnostic_events(owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_plugin_instance\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_plugin_instance ON plugin_diagnostic_events(plugin_instance_id, type, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_diagnostics_surface\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE INDEX idx_plugin_diagnostics_surface ON plugin_diagnostic_events(surface_instance_id, severity, occurred_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_security_audit_journal_exported\",\n              \"table_name\": \"plugin_security_audit_journal\",\n              \"sql\": \"CREATE INDEX idx_plugin_security_audit_journal_exported ON plugin_security_audit_journal(seq) WHERE exported_at IS NOT NULL\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_security_audit_journal_state\",\n              \"table_name\": \"plugin_security_audit_journal\",\n              \"sql\": \"CREATE INDEX idx_plugin_security_audit_journal_state ON plugin_security_audit_journal(state, exported_at, seq)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_audit_events\",\n              \"table_name\": \"plugin_audit_events\",\n              \"sql\": \"CREATE TABLE plugin_audit_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_diagnostic_events\",\n              \"table_name\": \"plugin_diagnostic_events\",\n              \"sql\": \"CREATE TABLE plugin_diagnostic_events ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL, type TEXT NOT NULL, severity TEXT NOT NULL, message TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, active_fingerprint TEXT NOT NULL, request_id TEXT NOT NULL, correlation_id TEXT NOT NULL DEFAULT '', mutation_outcome TEXT NOT NULL DEFAULT '' CHECK(mutation_outcome IN ('', 'committed', 'not_committed', 'unknown')), owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL, failure_code TEXT NOT NULL DEFAULT '', failure_component TEXT NOT NULL DEFAULT '', failure_operation TEXT NOT NULL DEFAULT '' )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_observability_meta\",\n              \"table_name\": \"plugin_observability_meta\",\n              \"sql\": \"CREATE TABLE plugin_observability_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), audit_seq INTEGER NOT NULL, diagnostic_seq INTEGER NOT NULL )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_audit_journal\",\n              \"table_name\": \"plugin_security_audit_journal\",\n              \"sql\": \"CREATE TABLE plugin_security_audit_journal ( seq INTEGER PRIMARY KEY, event_id TEXT NOT NULL UNIQUE, type TEXT NOT NULL, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, surface_id TEXT NOT NULL, surface_instance_id TEXT NOT NULL, request_id TEXT NOT NULL, actor TEXT NOT NULL, occurred_at INTEGER NOT NULL, details_json BLOB NOT NULL, state TEXT NOT NULL CHECK(state IN ('pending', 'completed')), mutation_outcome TEXT NOT NULL, completion_details_json BLOB NOT NULL, created_at INTEGER NOT NULL, completed_at INTEGER, exported_at INTEGER )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_audit_meta\",\n              \"table_name\": \"plugin_security_audit_meta\",\n              \"sql\": \"CREATE TABLE plugin_security_audit_meta ( id INTEGER PRIMARY KEY CHECK(id = 1), seq INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"230d789557736cc47b4c0d760d46a4c58ce7575f57e4779e010db5539865c666\"\n        },\n        {\n          \"path\": \"db/operations.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_created\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_created ON plugin_operations(created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_owner\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_owner ON plugin_operations(owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_owner_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_owner_plugin_instance ON plugin_operations(owner_env_hash, plugin_instance_id, created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_owner_plugin_session\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_owner_plugin_session ON plugin_operations(owner_env_hash, plugin_instance_id, owner_session_hash, owner_user_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_owner_terminal_retention\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_owner_terminal_retention ON plugin_operations(owner_env_hash, plugin_instance_id, terminal_at DESC, operation_id DESC) WHERE terminal_at IS NOT NULL\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_instance\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_instance ON plugin_operations(plugin_instance_id, created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_plugin_owner\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_plugin_owner ON plugin_operations(plugin_instance_id, owner_session_hash, owner_user_hash, owner_env_hash, session_channel_id_hash, created_at DESC, operation_id DESC)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_operations_terminal_retention\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE INDEX idx_plugin_operations_terminal_retention ON plugin_operations(plugin_instance_id, terminal_at DESC, operation_id DESC) WHERE terminal_at IS NOT NULL\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_operations\",\n              \"table_name\": \"plugin_operations\",\n              \"sql\": \"CREATE TABLE plugin_operations ( operation_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', status TEXT NOT NULL, cancelable INTEGER NOT NULL DEFAULT 1, cancel_ack_timeout_ms INTEGER NOT NULL DEFAULT 0, disable_behavior TEXT NOT NULL, uninstall_behavior TEXT NOT NULL, failure_code TEXT NOT NULL, reason TEXT NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, cancel_requested_at INTEGER, orphaned_at INTEGER, terminal_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"6cb266bb6e06d4e9926bfd1513c3acdbcd6b2f7e8e988758baa29b497c1f3eba\"\n        },\n        {\n          \"path\": \"db/registry.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_deleted_at\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_deleted_at ON plugin_records(owner_env_hash, deleted_at)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_records_plugin_id\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE INDEX idx_plugin_records_plugin_id ON plugin_records(owner_env_hash, plugin_id)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_data_bindings\",\n              \"table_name\": \"plugin_data_bindings\",\n              \"sql\": \"CREATE TABLE plugin_data_bindings ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, generation_id TEXT NOT NULL, state TEXT NOT NULL, revision INTEGER NOT NULL, shape_hash TEXT NOT NULL, retained_at INTEGER, expires_at INTEGER, PRIMARY KEY(owner_env_hash, plugin_instance_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_data_objects\",\n              \"table_name\": \"plugin_data_objects\",\n              \"sql\": \"CREATE TABLE plugin_data_objects ( scope_kind TEXT NOT NULL, owner_env_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, object_id TEXT NOT NULL, content_hash TEXT NOT NULL, shape_hash TEXT NOT NULL, size_bytes INTEGER NOT NULL, created_at INTEGER NOT NULL, PRIMARY KEY(scope_kind, owner_env_hash, owner_user_hash, plugin_instance_id, object_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_permission_grants\",\n              \"table_name\": \"plugin_permission_grants\",\n              \"sql\": \"CREATE TABLE plugin_permission_grants ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, effect TEXT NOT NULL, granted_by TEXT NOT NULL, granted_at INTEGER NOT NULL, expires_at INTEGER, revoked_at INTEGER, revoked_by TEXT NOT NULL, revoked_reason TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, permission_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_records\",\n              \"table_name\": \"plugin_records\",\n              \"sql\": \"CREATE TABLE plugin_records ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, publisher_id TEXT NOT NULL, plugin_id TEXT NOT NULL, version TEXT NOT NULL, active_fingerprint TEXT NOT NULL, package_hash TEXT NOT NULL, manifest_hash TEXT NOT NULL, entries_hash TEXT NOT NULL, trust_state TEXT NOT NULL, trust_assessment_json TEXT NOT NULL DEFAULT '{}', source_policy_snapshot_hash TEXT NOT NULL DEFAULT '', source_policy_snapshot_json TEXT NOT NULL DEFAULT '{}', local_import_provenance_json TEXT NOT NULL DEFAULT '{}', capability_contracts_json TEXT NOT NULL DEFAULT '[]', enable_state TEXT NOT NULL, disabled_reason TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, manifest_json TEXT NOT NULL, package_entries_json TEXT NOT NULL, version_history_json TEXT NOT NULL, runtime_requirement_json TEXT NOT NULL DEFAULT 'null', installed_at INTEGER NOT NULL, enabled_at INTEGER, updated_at INTEGER NOT NULL, deleted_at INTEGER, metadata_json TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id) )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policies\",\n              \"table_name\": \"plugin_security_policies\",\n              \"sql\": \"CREATE TABLE plugin_security_policies ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, allowed_permissions_json TEXT NOT NULL, denied_methods_json TEXT NOT NULL, updated_at INTEGER NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_records(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_allowed_permissions\",\n              \"table_name\": \"plugin_security_policy_allowed_permissions\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_allowed_permissions ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, permission_id TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, permission_id), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_security_policies(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_security_policy_denied_methods\",\n              \"table_name\": \"plugin_security_policy_denied_methods\",\n              \"sql\": \"CREATE TABLE plugin_security_policy_denied_methods ( owner_env_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, PRIMARY KEY(owner_env_hash, plugin_instance_id, method), FOREIGN KEY(owner_env_hash, plugin_instance_id) REFERENCES plugin_security_policies(owner_env_hash, plugin_instance_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_source_security_floors\",\n              \"table_name\": \"plugin_source_security_floors\",\n              \"sql\": \"CREATE TABLE plugin_source_security_floors ( source_id TEXT PRIMARY KEY, policy_epoch TEXT NOT NULL, key_rotation_epoch TEXT NOT NULL, revocation_epoch TEXT NOT NULL, source_policy_snapshot_hash TEXT NOT NULL, revocation_metadata_sha256 TEXT NOT NULL, updated_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"fb1d3c89eccea640d8f11261bcdd5e09a297a4253f5ca13ae0bc953ff3e189a9\"\n        },\n        {\n          \"path\": \"db/runtime_lease_replays.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_runtime_lease_replays_plugin\",\n              \"table_name\": \"plugin_runtime_lease_replays\",\n              \"sql\": \"CREATE INDEX idx_runtime_lease_replays_plugin ON plugin_runtime_lease_replays(plugin_instance_id, consumed_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_runtime_lease_replays\",\n              \"table_name\": \"plugin_runtime_lease_replays\",\n              \"sql\": \"CREATE TABLE plugin_runtime_lease_replays ( lease_nonce_hash TEXT PRIMARY KEY, lease_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, runtime_generation_id TEXT NOT NULL, method TEXT NOT NULL, policy_revision INTEGER NOT NULL, management_revision INTEGER NOT NULL, revoke_epoch INTEGER NOT NULL, consumed_at INTEGER NOT NULL, expires_at INTEGER NOT NULL )\"\n            }\n          ],\n          \"schema_sha256\": \"a4428fbd7cb8614384b539b583e0653460b8bafa24238dc23b9e916d447393a9\"\n        },\n        {\n          \"path\": \"db/secrets.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_secret_bindings_plugin\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE INDEX idx_plugin_secret_bindings_plugin ON plugin_secret_bindings(owner_env_hash, plugin_instance_id, scope, owner_user_hash, bound, updated_at)\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_secret_bindings\",\n              \"table_name\": \"plugin_secret_bindings\",\n              \"sql\": \"CREATE TABLE plugin_secret_bindings ( owner_env_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, secret_ref TEXT NOT NULL, scope TEXT NOT NULL, bound INTEGER NOT NULL, last_test_status TEXT NOT NULL, bound_at INTEGER, tested_at INTEGER, deleted_at INTEGER, updated_at INTEGER NOT NULL, PRIMARY KEY(owner_env_hash, owner_user_hash, plugin_instance_id, scope, secret_ref), CHECK((scope = 'environment' AND owner_user_hash = '') OR (scope = 'user' AND owner_user_hash <> '')) )\"\n            }\n          ],\n          \"schema_sha256\": \"4f5f0abf69b4c9ab1558f349640ffa2de6755b60d5e121886fa402e8c7eaa27b\"\n        },\n        {\n          \"path\": \"db/streams.sqlite\",\n          \"application_id\": 0,\n          \"user_version\": 0,\n          \"migration_versions\": [],\n          \"schema_objects\": [\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_owner_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_owner_plugin_instance ON plugin_streams(owner_env_hash, plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_owner_terminal_retention\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_owner_terminal_retention ON plugin_streams(owner_env_hash, plugin_instance_id, closed_at DESC, stream_id DESC) WHERE terminal_acknowledged = 1\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_plugin_instance\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_plugin_instance ON plugin_streams(plugin_instance_id, created_at, stream_id)\"\n            },\n            {\n              \"type\": \"index\",\n              \"name\": \"idx_plugin_streams_terminal_retention\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE INDEX idx_plugin_streams_terminal_retention ON plugin_streams(plugin_instance_id, closed_at DESC, stream_id DESC) WHERE terminal_acknowledged = 1\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_stream_events\",\n              \"table_name\": \"plugin_stream_events\",\n              \"sql\": \"CREATE TABLE plugin_stream_events ( stream_id TEXT NOT NULL, sequence INTEGER NOT NULL, kind TEXT NOT NULL, data BLOB, error TEXT NOT NULL, at INTEGER NOT NULL, PRIMARY KEY(stream_id, sequence), FOREIGN KEY(stream_id) REFERENCES plugin_streams(stream_id) ON DELETE CASCADE )\"\n            },\n            {\n              \"type\": \"table\",\n              \"name\": \"plugin_streams\",\n              \"table_name\": \"plugin_streams\",\n              \"sql\": \"CREATE TABLE plugin_streams ( stream_id TEXT PRIMARY KEY, plugin_id TEXT NOT NULL, plugin_instance_id TEXT NOT NULL, method TEXT NOT NULL, effect TEXT NOT NULL, execution TEXT NOT NULL, surface_instance_id TEXT NOT NULL, owner_session_hash TEXT NOT NULL, owner_user_hash TEXT NOT NULL, owner_env_hash TEXT NOT NULL, session_channel_id_hash TEXT NOT NULL, bridge_channel_id TEXT NOT NULL, execution_binding_json TEXT NOT NULL DEFAULT '{}', direction TEXT NOT NULL, status TEXT NOT NULL, failure_code TEXT NOT NULL, reason TEXT NOT NULL DEFAULT '', content_type TEXT NOT NULL, max_buffered_bytes INTEGER NOT NULL, buffered_bytes INTEGER NOT NULL, next_sequence INTEGER NOT NULL, pending_delivery_id TEXT NOT NULL, pending_read_id TEXT NOT NULL, pending_through_sequence INTEGER NOT NULL, pending_done INTEGER NOT NULL, pending_terminal_status TEXT NOT NULL, last_acknowledged_delivery_id TEXT NOT NULL, terminal_acknowledged INTEGER NOT NULL, created_at INTEGER NOT NULL, updated_at INTEGER NOT NULL, closed_at INTEGER )\"\n            }\n          ],\n          \"schema_sha256\": \"12a5810b5112819cb046f40491d8a014856c8209185ce471706158c1a816b2a3\"\n        }\n      ],\n      \"tree_rules\": {\n        \"allowed_kinds\": [\n          \"directory\",\n          \"file\"\n        ],\n        \"allow_sqlite_wal_shm\": true,\n        \"reject_hardlinks\": true,\n        \"reject_symlinks\": true,\n        \"variable_trees\": [\n          \"assets\",\n          \"storage\"\n        ]\n      }\n    }\n  ]\n}\n".as_bytes();
static CONTRACT_BODY_OWNER_SCOPE_INVENTORY_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/owner-scope-inventory-v1.schema.json\",\n  \"title\": \"ReDevPlugin owner scope inventory registry v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"inventories\"],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"owner-scope-inventory-v1\" },\n    \"inventories\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 32,\n      \"items\": { \"$ref\": \"#/$defs/inventory\" }\n    }\n  },\n  \"$defs\": {\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"identifier\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"relative_path\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 4096,\n      \"pattern\": \"^[a-z][a-z0-9._-]*(?:/[a-z][a-z0-9._-]*)*$\"\n    },\n    \"inventory\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"id\", \"platform_versions\", \"root_entries\", \"sqlite_databases\", \"tree_rules\"],\n      \"properties\": {\n        \"id\": { \"$ref\": \"#/$defs/identifier\" },\n        \"platform_versions\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 32,\n          \"uniqueItems\": true,\n          \"items\": { \"type\": \"string\", \"pattern\": \"^0\\\\.[1-5]\\\\.[0-9]+$\" }\n        },\n        \"root_entries\": {\n          \"const\": [\n            { \"path\": \"assets\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" },\n            { \"path\": \"db\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" },\n            { \"path\": \"storage\", \"kind\": \"directory\", \"scope\": \"durable\", \"disposition\": \"quarantine\" }\n          ]\n        },\n        \"sqlite_databases\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 64,\n          \"items\": { \"$ref\": \"#/$defs/sqlite_database\" }\n        },\n        \"tree_rules\": {\n          \"const\": {\n            \"allowed_kinds\": [\"directory\", \"file\"],\n            \"allow_sqlite_wal_shm\": true,\n            \"reject_hardlinks\": true,\n            \"reject_symlinks\": true,\n            \"variable_trees\": [\"assets\", \"storage\"]\n          }\n        }\n      }\n    },\n    \"sqlite_database\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"path\",\n        \"application_id\",\n        \"user_version\",\n        \"migration_versions\",\n        \"schema_objects\",\n        \"schema_sha256\"\n      ],\n      \"properties\": {\n        \"path\": { \"$ref\": \"#/$defs/relative_path\" },\n        \"application_id\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967295 },\n        \"user_version\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 2147483647 },\n        \"migration_versions\": {\n          \"type\": \"array\",\n          \"maxItems\": 16,\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"table\", \"versions\"],\n            \"properties\": {\n              \"table\": { \"$ref\": \"#/$defs/identifier\" },\n              \"versions\": {\n                \"type\": \"array\",\n                \"minItems\": 1,\n                \"maxItems\": 64,\n                \"uniqueItems\": true,\n                \"items\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 2147483647 }\n              }\n            }\n          }\n        },\n        \"schema_objects\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 128,\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"type\", \"name\", \"table_name\", \"sql\"],\n            \"properties\": {\n              \"type\": { \"enum\": [\"index\", \"table\"] },\n              \"name\": { \"$ref\": \"#/$defs/identifier\" },\n              \"table_name\": { \"$ref\": \"#/$defs/identifier\" },\n              \"sql\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 16384 }\n            }\n          }\n        },\n        \"schema_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_OWNER_SCOPE_MIGRATION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/owner-scope-migration-v1.schema.json\",\n  \"title\": \"ReDevPlugin owner scope migration journal v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"migration_id\",\n    \"root_identity_sha256\",\n    \"legacy_snapshot_sha256\",\n    \"inventory_id\",\n    \"inventory_sha256\",\n    \"state\",\n    \"quarantine_id\",\n    \"quarantine_sha256\",\n    \"fresh_generation_id\",\n    \"fresh_generation_sha256\",\n    \"stores\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"owner-scope-migration-v1\" },\n    \"migration_id\": { \"$ref\": \"#/$defs/opaque_id\" },\n    \"root_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"legacy_snapshot_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"inventory_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^[a-z][a-z0-9._-]+$\" },\n    \"inventory_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n    \"state\": {\n      \"enum\": [\n        \"prepared\",\n        \"quarantine_writing\",\n        \"quarantine_committed\",\n        \"fresh_prepared\",\n        \"fresh_committed\",\n        \"reconcile_required\",\n        \"failed\"\n      ]\n    },\n    \"quarantine_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^quarantine_[0-9a-f]{32}$\" },\n    \"quarantine_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n    \"fresh_generation_id\": { \"type\": \"string\", \"maxLength\": 128, \"pattern\": \"^$|^generation_[0-9a-f]{32}$\" },\n    \"fresh_generation_sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" },\n    \"stores\": {\n      \"type\": \"array\",\n      \"maxItems\": 64,\n      \"items\": {\n        \"type\": \"object\",\n        \"additionalProperties\": false,\n        \"required\": [\"id\", \"scope\", \"disposition\", \"generation\", \"outcome\"],\n        \"properties\": {\n          \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n          \"scope\": { \"enum\": [\"durable\", \"session\", \"transient\"] },\n          \"disposition\": { \"enum\": [\"quarantine\", \"terminate\"] },\n          \"generation\": { \"type\": \"string\", \"maxLength\": 128 },\n          \"outcome\": { \"type\": \"string\", \"maxLength\": 128 }\n        }\n      }\n    }\n  },\n  \"$defs\": {\n    \"opaque_id\": { \"type\": \"string\", \"pattern\": \"^migration_[0-9a-f]{32}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_PACKAGE_SIGNATURE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/package-signature-v1.schema.json\",\n  \"title\": \"ReDevPlugin package detached signature v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"algorithm\",\n    \"key_id\",\n    \"package_hash\",\n    \"manifest_hash\",\n    \"entries_hash\",\n    \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.package_signature.v1\" },\n    \"algorithm\": { \"enum\": [\"ed25519\"] },\n    \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"manifest_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"entries_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signature\": { \"type\": \"string\", \"minLength\": 1 },\n    \"signed_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n  },\n  \"$defs\": {\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_PERFORMANCE_CONTRACT: &[u8] = "{\n  \"schema_version\": \"redevplugin.performance_contract.v3\",\n  \"comparison_probes\": [\n    {\n      \"id\": \"httpadapter.route-authorization-v051\",\n      \"baseline_release\": \"0.5.1\",\n      \"baseline_commit\": \"3febcc59bbdb2118a4f105781b4c743bc11ba09f\",\n      \"repetitions\": 5,\n      \"warmup_batches\": 8,\n      \"requests_per_sample\": 32,\n      \"measured_batches\": [\n        { \"concurrency\": 1, \"batches\": 1000, \"samples\": 32000 },\n        { \"concurrency\": 100, \"batches\": 64, \"samples\": 204800 },\n        { \"concurrency\": 1000, \"batches\": 64, \"samples\": 2048000 }\n      ],\n      \"runner\": {\n        \"path\": \"scripts/measure_http_route_authorization_performance.mjs\",\n        \"sha256\": \"ccb704f1229b7aa41986d52d8eb473c0b6b1665594dc6094ab8072597d91e55f\"\n      },\n      \"comparison_logic\": {\n        \"path\": \"scripts/route_authorization_comparison.mjs\",\n        \"sha256\": \"f741b7f21ffc771c2064d7293fce9ec5138771ee6b0f62a374b80d899dc66fb6\"\n      },\n      \"baseline_probe\": {\n        \"path\": \"testdata/performance/httpadapter-v051/route_authorization_performance_test.go\",\n        \"sha256\": \"2a8891b9c2e962ba3660aadb25bdf9e2cca45565ad8dea6d7b59c08fc787c18f\"\n      },\n      \"candidate_probe\": {\n        \"path\": \"pkg/httpadapter/route_authorization_performance_test.go\",\n        \"sha256\": \"113eb3f0cf1d7383a6f14b8d7406e42c655c018c1455b47f0afd44869a354ff3\"\n      },\n      \"shared_probe\": {\n        \"path\": \"internal/performanceevidence/route_authorization.go\",\n        \"sha256\": \"5a2dd9f235eb80d2f7c6a2ddb5870e1d5aa9f9132b6a8abff51ce20b0f037910\"\n      }\n    }\n  ],\n  \"scenarios\": [\n    {\n      \"id\": \"runtime.blocked-hostcall-isolation\",\n      \"sample_count\": 16,\n      \"metrics\": [\n        { \"name\": \"completed\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 16 },\n        { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 250 }\n      ]\n    },\n    {\n      \"id\": \"runtime.cache-single-flight\",\n      \"sample_count\": 32,\n      \"metrics\": [\n        { \"name\": \"artifact_reads\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"module_compiles\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"cache_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n      ]\n    },\n    {\n      \"id\": \"runtime.cancel-queued\",\n      \"sample_count\": 20,\n      \"metrics\": [\n        { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n      ]\n    },\n    {\n      \"id\": \"runtime.cancel-running\",\n      \"sample_count\": 20,\n      \"metrics\": [\n        { \"name\": \"ack_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 },\n        { \"name\": \"runtime_ready\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n      ]\n    },\n    {\n      \"id\": \"runtime.warm-invocations\",\n      \"sample_count\": 32,\n      \"metrics\": [\n        { \"name\": \"completed\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 32 },\n        { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 },\n        { \"name\": \"max\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 500 }\n      ]\n    },\n    {\n      \"id\": \"runtime.ipc-writer-burst\",\n      \"sample_count\": 10000,\n      \"metrics\": [\n        { \"name\": \"frames\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 10000 },\n        { \"name\": \"queue_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 136 },\n        { \"name\": \"blocked_at_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"peak_rss_bytes\", \"unit\": \"bytes\", \"comparator\": \"lte\", \"limit\": 67108864 },\n        { \"name\": \"flushes\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 625 }\n      ]\n    },\n    {\n      \"id\": \"runtime.scheduler-indexed-cancel\",\n      \"sample_count\": 10000,\n      \"metrics\": [\n        { \"name\": \"index_lookups\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 10000 },\n        { \"name\": \"compaction_entries_per_cancel\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 25000 },\n        { \"name\": \"remaining_requests\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 0 }\n      ]\n    },\n    {\n      \"id\": \"runtime.module-cache-indexed-eviction\",\n      \"sample_count\": 10000,\n      \"metrics\": [\n        { \"name\": \"index_pops_per_eviction\", \"unit\": \"basis_points\", \"comparator\": \"eq\", \"limit\": 10000 },\n        { \"name\": \"remaining_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 128 }\n      ]\n    },\n    {\n      \"id\": \"httpadapter.route-authorization-c1\",\n      \"sample_count\": 32000,\n      \"metrics\": [\n        { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n        { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n        { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n        { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n      ]\n    },\n    {\n      \"id\": \"httpadapter.route-authorization-c100\",\n      \"sample_count\": 204800,\n      \"metrics\": [\n        { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n        { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n        { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n        { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n      ]\n    },\n    {\n      \"id\": \"httpadapter.route-authorization-c1000\",\n      \"sample_count\": 2048000,\n      \"metrics\": [\n        { \"name\": \"p95_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11000 },\n        { \"name\": \"p99_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 11500 },\n        { \"name\": \"allocations_increase\", \"unit\": \"count\", \"comparator\": \"lte\", \"limit\": 1 },\n        { \"name\": \"allocated_bytes_relative\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 10500 }\n      ]\n    },\n    {\n      \"id\": \"connectivity.http-keepalive\",\n      \"sample_count\": 64,\n      \"metrics\": [\n        { \"name\": \"p95_relative_to_connect\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 7000 },\n        { \"name\": \"reused_connection_dials\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n      ]\n    },\n    {\n      \"id\": \"connectivity.udp-limiter-scaling\",\n      \"sample_count\": 1000,\n      \"metrics\": [\n        { \"name\": \"p95_large_relative_to_small\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 20000 },\n        { \"name\": \"bucket_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 65536 },\n        { \"name\": \"overflow_denied\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 }\n      ]\n    },\n    {\n      \"id\": \"plugindata.namespace-cache-warm\",\n      \"sample_count\": 100,\n      \"metrics\": [\n        { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 3000 }\n      ]\n    },\n    {\n      \"id\": \"pluginpkg.package-owned-materialization\",\n      \"sample_count\": 3,\n      \"metrics\": [\n        { \"name\": \"peak_rss_relative_to_cloned\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 6500 }\n      ]\n    },\n    {\n      \"id\": \"pluginpkg.wasm-inspection-cache\",\n      \"sample_count\": 1000,\n      \"metrics\": [\n        { \"name\": \"inspector_calls\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"cache_entries\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"cache_capacity\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 128 },\n        { \"name\": \"warm_relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 5000 }\n      ]\n    },\n    {\n      \"id\": \"registry.sqlite-authorization-scaling\",\n      \"sample_count\": 500,\n      \"metrics\": [\n        { \"name\": \"p95_1000_grants_relative_to_1\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 20000 }\n      ]\n    },\n    {\n      \"id\": \"operation.memory-store-snapshot\",\n      \"sample_count\": 1000,\n      \"metrics\": [\n        { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 2000 }\n      ]\n    },\n    {\n      \"id\": \"stream.memory-store-snapshot\",\n      \"sample_count\": 1000,\n      \"metrics\": [\n        { \"name\": \"relative_allocations\", \"unit\": \"basis_points\", \"comparator\": \"lte\", \"limit\": 2000 }\n      ]\n    },\n    {\n      \"id\": \"stream.event-backpressure\",\n      \"sample_count\": 257,\n      \"metrics\": [\n        { \"name\": \"accepted_events\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 },\n        { \"name\": \"first_rejected_event\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 257 }\n      ]\n    },\n    {\n      \"id\": \"stream.idle-waiters\",\n      \"sample_count\": 500,\n      \"metrics\": [\n        { \"name\": \"waiters\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 500 },\n        { \"name\": \"periodic_store_queries\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 0 },\n        { \"name\": \"wake_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 100 }\n      ]\n    },\n    {\n      \"id\": \"stream.sqlite-batch-delivery\",\n      \"sample_count\": 256,\n      \"metrics\": [\n        { \"name\": \"events_selected\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 },\n        { \"name\": \"bounded_selects\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"delivery_snapshots\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"range_deletes\", \"unit\": \"queries\", \"comparator\": \"eq\", \"limit\": 1 },\n        { \"name\": \"remaining_events\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 256 }\n      ]\n    },\n    {\n      \"id\": \"ui.chromium-renderer\",\n      \"sample_count\": 10,\n      \"metrics\": [\n        { \"name\": \"reverse_patch_p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 },\n        { \"name\": \"long_tasks\", \"unit\": \"long_tasks\", \"comparator\": \"eq\", \"limit\": 0 },\n        { \"name\": \"max_long_task\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n      ]\n    },\n    {\n      \"id\": \"ui.keyed-reversal\",\n      \"sample_count\": 30,\n      \"metrics\": [\n        { \"name\": \"moves\", \"unit\": \"count\", \"comparator\": \"eq\", \"limit\": 999 },\n        { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n      ]\n    },\n    {\n      \"id\": \"ui.single-leaf-reconciliation\",\n      \"sample_count\": 40,\n      \"metrics\": [\n        { \"name\": \"p95\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 16 },\n        { \"name\": \"max\", \"unit\": \"milliseconds\", \"comparator\": \"lte\", \"limit\": 50 }\n      ]\n    }\n  ]\n}\n".as_bytes();
static CONTRACT_BODY_PERFORMANCE_EVIDENCE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/performance-evidence-v3.schema.json\",\n  \"title\": \"ReDevPlugin release performance evidence v3\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"release_version\",\n    \"source_commit\",\n    \"generated_at\",\n    \"environment\",\n    \"scenarios\",\n    \"comparisons\",\n    \"contract_hashes\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.performance_evidence.v3\" },\n    \"release_version\": { \"$ref\": \"#/$defs/semver\" },\n    \"source_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n    \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"environment\": { \"$ref\": \"#/$defs/environment\" },\n    \"scenarios\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/scenario\" }\n    },\n    \"comparisons\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/comparison\" }\n    },\n    \"contract_hashes\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/contract_hash\" }\n    }\n  },\n  \"$defs\": {\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$\"\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[0-9a-f]{64}$\"\n    },\n    \"environment\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"os\", \"arch\", \"logical_cpus\", \"go_version\", \"node_version\", \"rustc_version\", \"chromium_version\"],\n      \"properties\": {\n        \"os\": { \"type\": \"string\", \"minLength\": 1 },\n        \"arch\": { \"type\": \"string\", \"minLength\": 1 },\n        \"logical_cpus\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"go_version\": { \"type\": \"string\", \"minLength\": 1 },\n        \"node_version\": { \"type\": \"string\", \"minLength\": 1 },\n        \"rustc_version\": { \"type\": \"string\", \"minLength\": 1 },\n        \"chromium_version\": { \"type\": \"string\", \"minLength\": 1 }\n      }\n    },\n    \"scenario\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"id\", \"gate\", \"status\", \"sample_count\", \"metrics\"],\n      \"properties\": {\n        \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]+$\" },\n        \"gate\": { \"enum\": [\"fast\", \"smoke\", \"weekly\", \"full\", \"release\"] },\n        \"status\": { \"const\": \"pass\" },\n        \"sample_count\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"metrics\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"uniqueItems\": true,\n          \"items\": { \"$ref\": \"#/$defs/metric\" }\n        }\n      }\n    },\n    \"metric\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"unit\", \"observed\", \"limit\", \"comparator\"],\n      \"properties\": {\n        \"name\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]+$\" },\n        \"unit\": { \"enum\": [\"milliseconds\", \"count\", \"bytes\", \"queries\", \"long_tasks\", \"basis_points\"] },\n        \"observed\": { \"type\": \"number\", \"minimum\": 0 },\n        \"limit\": { \"type\": \"number\", \"minimum\": 0 },\n        \"comparator\": { \"enum\": [\"lte\", \"eq\"] }\n      }\n    },\n    \"comparison\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"id\",\n        \"baseline_release\",\n        \"baseline_commit\",\n        \"candidate_commit\",\n        \"runs\"\n      ],\n      \"properties\": {\n        \"id\": { \"const\": \"httpadapter.route-authorization-v051\" },\n        \"baseline_release\": { \"const\": \"0.5.1\" },\n        \"baseline_commit\": { \"const\": \"3febcc59bbdb2118a4f105781b4c743bc11ba09f\" },\n        \"candidate_commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n        \"runs\": {\n          \"type\": \"array\",\n          \"minItems\": 3,\n          \"maxItems\": 3,\n          \"items\": { \"$ref\": \"#/$defs/comparison_run\" }\n        }\n      }\n    },\n    \"comparison_run\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"baseline_profile_sha256\",\n        \"candidate_profile_sha256\",\n        \"baseline_profile\",\n        \"candidate_profile\"\n      ],\n      \"properties\": {\n        \"baseline_profile_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"candidate_profile_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"baseline_profile\": { \"$ref\": \"#/$defs/route_authorization_profile\" },\n        \"candidate_profile\": { \"$ref\": \"#/$defs/route_authorization_profile\" }\n      }\n    },\n    \"route_authorization_profile\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"variant\", \"commit\", \"environment\", \"warmup_count\", \"requests_per_sample\", \"measurements\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.route_authorization_performance.v1\" },\n        \"variant\": { \"enum\": [\"v0.5.1\", \"v0.6.0\"] },\n        \"commit\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\" },\n        \"environment\": { \"$ref\": \"#/$defs/route_authorization_environment\" },\n        \"warmup_count\": { \"const\": 8 },\n        \"requests_per_sample\": { \"const\": 32 },\n        \"measurements\": {\n          \"type\": \"array\",\n          \"minItems\": 3,\n          \"maxItems\": 3,\n          \"uniqueItems\": true,\n          \"items\": { \"$ref\": \"#/$defs/route_authorization_measurement\" }\n        }\n      }\n    },\n    \"route_authorization_environment\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"os\", \"arch\", \"logical_cpus\", \"gomaxprocs\", \"go_version\"],\n      \"properties\": {\n        \"os\": { \"type\": \"string\", \"minLength\": 1 },\n        \"arch\": { \"type\": \"string\", \"minLength\": 1 },\n        \"logical_cpus\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"gomaxprocs\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"go_version\": { \"type\": \"string\", \"minLength\": 1 }\n      }\n    },\n    \"route_authorization_measurement\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"concurrency\",\n        \"batch_count\",\n        \"sample_count\",\n        \"median_nanoseconds\",\n        \"p95_nanoseconds\",\n        \"p99_nanoseconds\",\n        \"allocations_per_request\",\n        \"bytes_per_request\"\n      ],\n      \"properties\": {\n        \"concurrency\": { \"enum\": [1, 100, 1000] },\n        \"batch_count\": { \"type\": \"integer\", \"minimum\": 64, \"maximum\": 9007199254740991 },\n        \"sample_count\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"median_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"p95_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"p99_nanoseconds\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"allocations_per_request\": { \"type\": \"number\", \"minimum\": 0 },\n        \"bytes_per_request\": { \"type\": \"number\", \"minimum\": 0 }\n      }\n    },\n    \"contract_hash\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"id\", \"sha256\"],\n      \"properties\": {\n        \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9-]+$\" },\n        \"sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_PLATFORM_PACKAGE_PUBLICATION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/platform-package-publication-v1.schema.json\",\n  \"title\": \"ReDevPlugin Platform Package Publication V1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"platform_version\", \"source_commit\", \"workflow\", \"go_module\", \"npm_packages\", \"rust_crates\", \"contract_set_sha256\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.platform_package_publication.v1\"},\n    \"platform_version\": {\"$ref\": \"#/$defs/version\"},\n    \"source_commit\": {\"$ref\": \"#/$defs/commit\"},\n    \"workflow\": {\"$ref\": \"#/$defs/workflow\"},\n    \"go_module\": {\"$ref\": \"#/$defs/go_module\"},\n    \"npm_packages\": {\n      \"type\": \"array\",\n      \"minItems\": 2,\n      \"maxItems\": 2,\n      \"uniqueItems\": true,\n      \"prefixItems\": [\n        {\"$ref\": \"#/$defs/npm_contracts\"},\n        {\"$ref\": \"#/$defs/npm_ui\"}\n      ],\n      \"items\": false\n    },\n    \"rust_crates\": {\n      \"type\": \"array\",\n      \"minItems\": 6,\n      \"maxItems\": 6,\n      \"uniqueItems\": true,\n      \"prefixItems\": [\n        {\"$ref\": \"#/$defs/rust_contracts\"},\n        {\"$ref\": \"#/$defs/rust_ipc\"},\n        {\"$ref\": \"#/$defs/rust_wasm_abi\"},\n        {\"$ref\": \"#/$defs/rust_target_classifier\"},\n        {\"$ref\": \"#/$defs/rust_worker_sdk\"},\n        {\"$ref\": \"#/$defs/rust_runtime\"}\n      ],\n      \"items\": false\n    },\n    \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n  },\n  \"$defs\": {\n    \"version\": {\n      \"type\": \"string\",\n      \"minLength\": 5,\n      \"maxLength\": 64,\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"\n    },\n    \"commit\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{40}$\"},\n    \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"workflow\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"repository\", \"path\", \"ref\", \"sha\"],\n      \"properties\": {\n        \"repository\": {\"const\": \"floegence/redevplugin\"},\n        \"path\": {\"const\": \".github/workflows/release.yml\"},\n        \"ref\": {\"type\": \"string\", \"minLength\": 15, \"maxLength\": 80, \"pattern\": \"^refs/tags/v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"},\n        \"sha\": {\"$ref\": \"#/$defs/commit\"}\n      }\n    },\n    \"go_module\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"module\", \"version\", \"h1\", \"go_mod_h1\"],\n      \"properties\": {\n        \"module\": {\"const\": \"github.com/floegence/redevplugin\"},\n        \"version\": {\"type\": \"string\", \"minLength\": 6, \"maxLength\": 65, \"pattern\": \"^v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"},\n        \"h1\": {\"type\": \"string\", \"pattern\": \"^h1:[A-Za-z0-9+/]{43}=$\"},\n        \"go_mod_h1\": {\"type\": \"string\", \"pattern\": \"^h1:[A-Za-z0-9+/]{43}=$\"}\n      }\n    },\n    \"npm_package\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"version\", \"integrity\", \"provenance_subject_sha512\"],\n      \"properties\": {\n        \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n        \"version\": {\"$ref\": \"#/$defs/version\"},\n        \"integrity\": {\"type\": \"string\", \"pattern\": \"^sha512-[A-Za-z0-9+/]{86}==$\"},\n        \"provenance_subject_sha512\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{128}$\"}\n      }\n    },\n    \"npm_contracts\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/npm_package\"},\n        {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-contracts\"}}}\n      ]\n    },\n    \"npm_ui\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/npm_package\"},\n        {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-ui\"}}}\n      ]\n    },\n    \"rust_crate\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"version\", \"registry_checksum_sha256\"],\n      \"properties\": {\n        \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n        \"version\": {\"$ref\": \"#/$defs/version\"},\n        \"registry_checksum_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n      }\n    },\n    \"rust_contracts\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-contracts\"}}}\n      ]\n    },\n    \"rust_ipc\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-ipc\"}}}\n      ]\n    },\n    \"rust_wasm_abi\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-wasm-abi\"}}}\n      ]\n    },\n    \"rust_target_classifier\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-target-classifier\"}}}\n      ]\n    },\n    \"rust_worker_sdk\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-worker-sdk\"}}}\n      ]\n    },\n    \"rust_runtime\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-runtime\"}}}\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_PLATFORM_PACKAGE_SET_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/platform-package-set-v1.schema.json\",\n  \"title\": \"ReDevPlugin Platform Package Set V1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"platform_version\", \"go_module\", \"npm_packages\", \"rust_crates\", \"contract_registry_version\", \"contract_set_sha256\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.platform_package_set.v1\"},\n    \"platform_version\": {\"$ref\": \"#/$defs/version\"},\n    \"go_module\": {\"$ref\": \"#/$defs/go_module\"},\n    \"npm_packages\": {\n      \"type\": \"array\",\n      \"minItems\": 2,\n      \"maxItems\": 2,\n      \"uniqueItems\": true,\n      \"prefixItems\": [\n        {\"$ref\": \"#/$defs/npm_contracts\"},\n        {\"$ref\": \"#/$defs/npm_ui\"}\n      ],\n      \"items\": false\n    },\n    \"rust_crates\": {\n      \"type\": \"array\",\n      \"minItems\": 6,\n      \"maxItems\": 6,\n      \"uniqueItems\": true,\n      \"prefixItems\": [\n        {\"$ref\": \"#/$defs/rust_contracts\"},\n        {\"$ref\": \"#/$defs/rust_ipc\"},\n        {\"$ref\": \"#/$defs/rust_wasm_abi\"},\n        {\"$ref\": \"#/$defs/rust_target_classifier\"},\n        {\"$ref\": \"#/$defs/rust_worker_sdk\"},\n        {\"$ref\": \"#/$defs/rust_runtime\"}\n      ],\n      \"items\": false\n    },\n    \"contract_registry_version\": {\"const\": \"contract-registry-v2\"},\n    \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n  },\n  \"$defs\": {\n    \"version\": {\n      \"type\": \"string\",\n      \"minLength\": 5,\n      \"maxLength\": 64,\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"\n    },\n    \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"go_module\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"module\", \"version\"],\n      \"properties\": {\n        \"module\": {\"const\": \"github.com/floegence/redevplugin\"},\n        \"version\": {\"type\": \"string\", \"minLength\": 6, \"maxLength\": 65, \"pattern\": \"^v(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)$\"}\n      }\n    },\n    \"npm_package\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"version\"],\n      \"properties\": {\n        \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n        \"version\": {\"$ref\": \"#/$defs/version\"}\n      }\n    },\n    \"npm_contracts\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/npm_package\"},\n        {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-contracts\"}}}\n      ]\n    },\n    \"npm_ui\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/npm_package\"},\n        {\"properties\": {\"name\": {\"const\": \"@floegence/redevplugin-ui\"}}}\n      ]\n    },\n    \"rust_crate\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"version\", \"role\"],\n      \"properties\": {\n        \"name\": {\"type\": \"string\", \"minLength\": 1, \"maxLength\": 128},\n        \"version\": {\"$ref\": \"#/$defs/version\"},\n        \"role\": {\"enum\": [\"contracts\", \"ipc\", \"wasm_abi\", \"target_classifier\", \"worker_sdk\", \"runtime\"]}\n      }\n    },\n    \"rust_contracts\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-contracts\"}, \"role\": {\"const\": \"contracts\"}}}\n      ]\n    },\n    \"rust_ipc\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-ipc\"}, \"role\": {\"const\": \"ipc\"}}}\n      ]\n    },\n    \"rust_wasm_abi\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-wasm-abi\"}, \"role\": {\"const\": \"wasm_abi\"}}}\n      ]\n    },\n    \"rust_target_classifier\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-target-classifier\"}, \"role\": {\"const\": \"target_classifier\"}}}\n      ]\n    },\n    \"rust_worker_sdk\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-worker-sdk\"}, \"role\": {\"const\": \"worker_sdk\"}}}\n      ]\n    },\n    \"rust_runtime\": {\n      \"allOf\": [\n        {\"$ref\": \"#/$defs/rust_crate\"},\n        {\"properties\": {\"name\": {\"const\": \"redevplugin-runtime\"}, \"role\": {\"const\": \"runtime\"}}}\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_PLUGIN_PLATFORM_OPENAPI: &[u8] = "openapi: 3.1.0\ninfo:\n  title: ReDevPlugin Plugin Platform API\n  version: plugin-platform-v8\n  description: Host-agnostic plugin management, bridge, operation, data, and sandbox routes. Release-ref install and update routes resolve host-controlled package artifacts server-side and do not accept requested trust_state values; local-import package install/update routes are explicit developer/import flows and also do not accept caller-supplied trust_state values.\nx-redevplugin-query-policy:\n  reject_url_query_strings: true\n  require_closed_json_bodies: true\n  require_exact_origin: true\n  require_csrf: true\npaths:\n  /_redevplugin/api/plugins/{plugin_instance_id}/local-import:\n    post:\n      operationId: importLocalPackage\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        required: true\n        content:\n          application/vnd.redevplugin.package+zip:\n            schema: { type: string, format: binary }\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n    put:\n      operationId: updateLocalPackage\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n        - name: X-ReDevPlugin-Expected-Management-Revision\n          in: header\n          required: true\n          description: Canonical decimal management revision. Duplicate, combined, empty, or whitespace-padded values are rejected.\n          schema: { type: integer, minimum: 1, maximum: 9007199254740991 }\n      requestBody:\n        required: true\n        content:\n          application/vnd.redevplugin.package+zip:\n            schema: { type: string, format: binary }\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/install-release-ref:\n    post:\n      operationId: installReleaseRef\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/InstallReleaseRefRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/enable:\n    post:\n      operationId: enablePlugin\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/EnableRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/disable:\n    post:\n      operationId: disablePlugin\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/DisableRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/uninstall:\n    post:\n      operationId: uninstallPlugin\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/UninstallRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/update-release-ref:\n    post:\n      operationId: updateReleaseRef\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/UpdateReleaseRefRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/downgrade:\n    post:\n      operationId: downgradePlugin\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/DowngradeRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/catalog/query:\n    post:\n      operationId: listPlugins\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginCatalogResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/features/query:\n    post:\n      operationId: getPluginFeatures\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginFeaturesResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/platform/compatibility/query:\n    post:\n      operationId: getPluginPlatformCompatibility\n      x-redevplugin-route-effect: query\n      description: Returns the host-consumable ReDevPlugin compatibility manifest for the mounted platform artifact set.\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/CompatibilityResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/open:\n    post:\n      operationId: openPluginSurface\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/OpenSurfaceRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfaceBootstrapResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/session/revoke-scope:\n    post:\n      operationId: revokePluginSessionScope\n      x-redevplugin-route-effect: mutation\n      description: Irreversibly fences the authenticated session, drains every exact-session platform and runtime resource, and returns only public cumulative counts.\n      requestBody:\n        $ref: \"#/components/requestBodies/RevokeSessionScopeRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SessionScopeRevokeResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/prepare:\n    post:\n      operationId: preparePluginSurface\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/PrepareSurfaceRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfacePreparationResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/bridge-token:\n    post:\n      operationId: createSurfaceBridgeToken\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/TrustedParentBridgeTokenRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/BridgeTokenResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/assets/read:\n    post:\n      operationId: readPreparedSurfaceAsset\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/ReadSurfaceAssetRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfaceAssetResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/streams/read:\n    post:\n      operationId: readPreparedSurfaceStream\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/ReadSurfaceStreamRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfaceStreamResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/streams/ack:\n    post:\n      operationId: acknowledgePreparedSurfaceStream\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/AcknowledgeSurfaceStreamRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfaceStreamAcknowledgementResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/operations/cancel:\n    post:\n      operationId: cancelSurfacePluginOperation\n      x-redevplugin-route-effect: mutation\n      description: Cancels an operation only when it belongs to the authenticated surface, session, and private bridge channel.\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/CancelSurfaceOperationRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/confirmations/reject:\n    post:\n      operationId: rejectSurfacePluginConfirmation\n      x-redevplugin-route-effect: mutation\n      description: Atomically rejects a pending confirmation only when it belongs to the authenticated surface, session, current plugin revision, and private bridge channel.\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/RejectSurfaceConfirmationRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/ConfirmationRejectionResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/surfaces/{surface_instance_id}/dispose:\n    post:\n      operationId: disposePluginSurface\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/SurfaceInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/DisposeSurfaceRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SurfaceDisposeResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/rpc:\n    post:\n      operationId: callPluginMethod\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/RPCRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RPCResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/confirmations/prepare:\n    post:\n      operationId: preparePluginMethodConfirmation\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/PrepareMethodConfirmationRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PluginMethodConfirmationPreparationResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/intents/query:\n    post:\n      operationId: listPluginIntents\n      x-redevplugin-route-effect: query\n      description: 'Lists enabled, runnable plugin intents available to host-mediated interop. The response data is `{ \"intents\": [...] }`.'\n      requestBody:\n        $ref: \"#/components/requestBodies/ListIntentsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/IntentListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/intents/invoke:\n    post:\n      operationId: invokePluginIntent\n      x-redevplugin-route-effect: mutation\n      description: Invokes a host-mediated plugin intent without iframe gateway tokens while preserving local policy, permission grants, and dangerous-method fail-closed checks.\n      requestBody:\n        $ref: \"#/components/requestBodies/InvokeIntentRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RPCResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/operations/query:\n    post:\n      operationId: listPluginOperations\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/ListOperationsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/OperationListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/operations/{operation_id}/query:\n    post:\n      operationId: getPluginOperation\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/OperationID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/operations/{operation_id}/cancel:\n    post:\n      operationId: cancelPluginOperation\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/OperationID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/CancelOperationRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/OperationRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/runtime/start:\n    post:\n      operationId: startPluginRuntime\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/StartRuntimeRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RuntimeHealthResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/runtime/stop:\n    post:\n      operationId: stopPluginRuntime\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RuntimeStopResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/runtime/refresh-enabled:\n    post:\n      operationId: refreshEnabledPluginRuntimeState\n      x-redevplugin-route-effect: mutation\n      description: 'Replays runtime-derived state for enabled plugins after the embedding host process restarts or reattaches adapters. The response data is `{ \"results\": [...] }`.'\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RuntimeRefreshResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/runtime/health/query:\n    post:\n      operationId: getPluginRuntimeHealth\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RuntimeHealthResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/data/export:\n    post:\n      operationId: exportPluginData\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/ExportDataRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/DataExportResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/data/export/delete:\n    post:\n      operationId: deletePluginDataExport\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/DeleteDataExportRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/DataExportDeleteResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/data/import:\n    post:\n      operationId: importPluginData\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/ImportDataRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/DataImportResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/retained-data/query:\n    post:\n      operationId: listPluginRetainedData\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/ListRetainedDataQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RetainedDataListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/retained-data/delete:\n    post:\n      operationId: deletePluginRetainedData\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/DeleteRetainedDataRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RetainedDataBindingResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/retained-data/bind:\n    post:\n      operationId: bindPluginRetainedData\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/BindRetainedDataRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RetainedDataBindingResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/retained-data/cleanup-expired:\n    post:\n      operationId: cleanupExpiredPluginRetainedData\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/CleanupExpiredRetainedDataRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/RetainedDataCleanupResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/permissions/query:\n    post:\n      operationId: listPluginPermissionGrants\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/ListPermissionsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PermissionListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/permissions/grant:\n    post:\n      operationId: grantPluginPermission\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/GrantPermissionRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PermissionMutationResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/permissions/revoke:\n    post:\n      operationId: revokePluginPermission\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/RevokePermissionRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/PermissionMutationResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/security-policies/query:\n    post:\n      operationId: listPluginSecurityPolicies\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecurityPolicyListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/security-policies/{plugin_instance_id}/query:\n    post:\n      operationId: getPluginSecurityPolicy\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/EmptyQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecurityPolicyRecordResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/security-policies/{plugin_instance_id}:\n    put:\n      operationId: putPluginSecurityPolicy\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/PutSecurityPolicyRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecurityPolicyRecordResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n    delete:\n      operationId: deletePluginSecurityPolicy\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/DeleteSecurityPolicyRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecurityPolicyDeleteResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/diagnostics/query:\n    post:\n      operationId: listPluginDiagnosticEvents\n      x-redevplugin-route-effect: query\n      requestBody:\n        $ref: \"#/components/requestBodies/ListDiagnosticsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/DiagnosticEventListResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/secrets/bind:\n    post:\n      operationId: bindPluginSecret\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/SecretRefRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecretBindResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/secrets/test:\n    post:\n      operationId: testPluginSecret\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/SecretRefRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecretTestResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/secrets/delete:\n    post:\n      operationId: deletePluginSecret\n      x-redevplugin-route-effect: mutation\n      requestBody:\n        $ref: \"#/components/requestBodies/SecretRefRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SecretDeleteResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\n  /_redevplugin/api/plugins/{plugin_instance_id}/settings/schema/query:\n    post:\n      operationId: getPluginSettingsSchema\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/SettingsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SettingsSchemaResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/{plugin_instance_id}/settings/query:\n    post:\n      operationId: getPluginSettings\n      x-redevplugin-route-effect: query\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/SettingsQueryRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SettingsSnapshotResponse\" }\n        default: { $ref: \"#/components/responses/PlatformErrorResponse\" }\n  /_redevplugin/api/plugins/{plugin_instance_id}/settings:\n    patch:\n      operationId: patchPluginSettings\n      x-redevplugin-route-effect: mutation\n      parameters:\n        - $ref: \"#/components/parameters/PluginInstanceID\"\n      requestBody:\n        $ref: \"#/components/requestBodies/PatchSettingsRequest\"\n      responses:\n        \"200\": { $ref: \"#/components/responses/SettingsSnapshotResponse\" }\n        default: { $ref: \"#/components/responses/MutationPlatformErrorResponse\" }\ncomponents:\n  parameters:\n    OperationID:\n      name: operation_id\n      in: path\n      required: true\n      schema: { type: string }\n    PluginInstanceID:\n      name: plugin_instance_id\n      in: path\n      required: true\n      schema: { type: string }\n    SurfaceInstanceID:\n      name: surface_instance_id\n      in: path\n      required: true\n      schema: { type: string }\n  responses:\n    PlatformErrorResponse:\n      description: Closed non-success response for read-only platform operations.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PlatformErrorResponse\"\n    MutationPlatformErrorResponse:\n      description: Closed non-success response for operations that may change durable platform state.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/MutationPlatformErrorResponse\"\n    RPCResponse:\n      description: Typed plugin method result. Subscriptions always bind one operation and one stream.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RPCSuccessResponse\"\n    SurfaceBootstrapResponse:\n      description: Trusted-parent surface bootstrap. Capability-bearing fields are never forwarded into the opaque iframe or plugin worker.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfaceBootstrapSuccessResponse\"\n    SurfacePreparationResponse:\n      description: Trusted-parent asset-session exchange and validated opaque surface document.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfacePreparationSuccessResponse\"\n    BridgeTokenResponse:\n      description: Trusted-parent plugin gateway token response.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/BridgeTokenSuccessResponse\"\n    SurfaceAssetResponse:\n      description: Trusted-parent package asset response. The plugin receives only a renderer-created blob URL.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfaceAssetSuccessResponse\"\n    SurfaceStreamResponse:\n      description: Trusted-parent stream redemption response. Stream tickets remain outside the plugin worker.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfaceStreamSuccessResponse\"\n    SurfaceStreamAcknowledgementResponse:\n      description: Confirms one exact stream delivery so the platform may release its events.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfaceStreamAcknowledgementSuccessResponse\"\n    SurfaceDisposeResponse:\n      description: Surface revocation response.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SurfaceDisposeSuccessResponse\"\n    SessionScopeRevokeResponse:\n      description: Completed authenticated-session teardown response.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SessionScopeRevokeSuccessResponse\"\n    PluginRecordResponse:\n      description: Plugin lifecycle response with typed registry trust assessment.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PluginRecordSuccessResponse\"\n    PluginCatalogResponse:\n      description: Installed plugin catalog response with typed registry records.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PluginCatalogSuccessResponse\"\n    PluginFeaturesResponse:\n      description: Closed set of optional host modules configured for this platform.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PluginFeaturesSuccessResponse\"\n    CompatibilityResponse:\n      description: Released platform compatibility manifest.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/CompatibilitySuccessResponse\"\n    PluginMethodConfirmationPreparationResponse:\n      description: Prepared plugin method confirmation. The raw confirmation token stays server-side and is never returned to parent JavaScript or the plugin iframe.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PluginMethodConfirmationPreparationSuccessResponse\"\n    ConfirmationRejectionResponse:\n      description: Trusted-parent acknowledgement that the pending confirmation was atomically rejected and cannot be replayed.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ConfirmationRejectionSuccessResponse\"\n    IntentListResponse:\n      description: Enabled plugin intent records.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/IntentListSuccessResponse\"\n    RetainedDataListResponse:\n      description: Retained plugin data list response.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RetainedDataListSuccessResponse\"\n    RetainedDataBindingResponse:\n      description: Plugin data binding returned after a retained-data mutation.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RetainedDataBindingSuccessResponse\"\n    RetainedDataCleanupResponse:\n      description: Retained plugin data cleanup response.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RetainedDataCleanupSuccessResponse\"\n    OperationRecordResponse:\n      description: Host-owned operation record with its immutable execution binding.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/OperationRecordSuccessResponse\"\n    OperationListResponse:\n      description: Host-owned operation records with immutable execution bindings.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/OperationListSuccessResponse\"\n    RuntimeHealthResponse:\n      description: Runtime manager and shard health.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RuntimeHealthSuccessResponse\"\n    RuntimeStopResponse:\n      description: Runtime manager stop acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RuntimeStopSuccessResponse\"\n    RuntimeRefreshResponse:\n      description: Enabled plugin runtime refresh result.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RuntimeRefreshSuccessResponse\"\n    DataExportResponse:\n      description: Plugin data export result.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DataExportSuccessResponse\"\n    DataExportDeleteResponse:\n      description: Immutable plugin data export deletion acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DataExportDeleteSuccessResponse\"\n    DataImportResponse:\n      description: Plugin record after the imported dataset becomes active.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PluginRecordSuccessResponse\"\n    PermissionListResponse:\n      description: Permission grants for the requested plugin scope.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PermissionListSuccessResponse\"\n    PermissionMutationResponse:\n      description: Permission grant mutation result.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PermissionMutationSuccessResponse\"\n    SecurityPolicyListResponse:\n      description: Complete list of configured plugin security policies.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecurityPolicyListSuccessResponse\"\n    SecurityPolicyRecordResponse:\n      description: Complete security policy for one plugin instance.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecurityPolicyRecordSuccessResponse\"\n    SecurityPolicyDeleteResponse:\n      description: Security policy deletion acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecurityPolicyDeleteSuccessResponse\"\n    DiagnosticEventListResponse:\n      description: Diagnostic events matching the requested filters.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DiagnosticEventListSuccessResponse\"\n    SecretBindResponse:\n      description: Secret reference bind acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecretBindSuccessResponse\"\n    SecretTestResponse:\n      description: Secret reference test acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecretTestSuccessResponse\"\n    SecretDeleteResponse:\n      description: Secret reference deletion acknowledgement.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecretDeleteSuccessResponse\"\n    SettingsSchemaResponse:\n      description: Plugin settings schema.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SettingsSchemaSuccessResponse\"\n    SettingsSnapshotResponse:\n      description: Plugin settings snapshot.\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SettingsSnapshotSuccessResponse\"\n  requestBodies:\n    InstallReleaseRefRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/InstallReleaseRefRequest\"\n    UpdateReleaseRefRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/UpdateReleaseRefRequest\"\n    DowngradeRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DowngradeRequest\"\n    EnableRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/EnableRequest\"\n    DisableRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DisableRequest\"\n    UninstallRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/UninstallRequest\"\n    OpenSurfaceRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/OpenSurfaceRequest\"\n    RevokeSessionScopeRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RevokeSessionScopeRequest\"\n    EmptyRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/EmptyRequest\"\n    EmptyQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/EmptyQueryRequest\"\n    ListIntentsQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ListIntentsQueryRequest\"\n    ListOperationsQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ListOperationsQueryRequest\"\n    ListRetainedDataQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ListRetainedDataQueryRequest\"\n    ListPermissionsQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ListPermissionsQueryRequest\"\n    ListDiagnosticsQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ListDiagnosticsQueryRequest\"\n    SettingsQueryRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SettingsQueryRequest\"\n    PrepareSurfaceRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PrepareSurfaceRequest\"\n    TrustedParentBridgeTokenRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/TrustedParentBridgeTokenRequest\"\n    ReadSurfaceAssetRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ReadSurfaceAssetRequest\"\n    ReadSurfaceStreamRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ReadSurfaceStreamRequest\"\n    AcknowledgeSurfaceStreamRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/AcknowledgeSurfaceStreamRequest\"\n    CancelSurfaceOperationRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/CancelSurfaceOperationRequest\"\n    RejectSurfaceConfirmationRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RejectSurfaceConfirmationRequest\"\n    DisposeSurfaceRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DisposeSurfaceRequest\"\n    RPCRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RPCRequest\"\n    PrepareMethodConfirmationRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PrepareMethodConfirmationRequest\"\n    InvokeIntentRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/InvokeIntentRequest\"\n    CancelOperationRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/CancelOperationRequest\"\n    StartRuntimeRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/StartRuntimeRequest\"\n    ExportDataRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ExportDataRequest\"\n    DeleteDataExportRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DeleteDataExportRequest\"\n    ImportDataRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/ImportDataRequest\"\n    DeleteRetainedDataRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DeleteRetainedDataRequest\"\n    BindRetainedDataRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/BindRetainedDataRequest\"\n    CleanupExpiredRetainedDataRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/CleanupExpiredRetainedDataRequest\"\n    GrantPermissionRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/GrantPermissionRequest\"\n    RevokePermissionRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/RevokePermissionRequest\"\n    PutSecurityPolicyRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PutSecurityPolicyRequest\"\n    DeleteSecurityPolicyRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/DeleteSecurityPolicyRequest\"\n    SecretRefRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/SecretRefRequest\"\n    PatchSettingsRequest:\n      required: true\n      content:\n        application/json:\n          schema:\n            $ref: \"#/components/schemas/PatchSettingsRequest\"\n  schemas:\n    PlatformErrorResponse:\n      type: object\n      required: [ok, error]\n      additionalProperties: false\n      properties:\n        ok: { const: false }\n        error:\n          $ref: \"#/components/schemas/PlatformError\"\n    MutationPlatformErrorResponse:\n      type: object\n      required: [ok, error]\n      additionalProperties: false\n      properties:\n        ok: { const: false }\n        error:\n          $ref: \"#/components/schemas/MutationPlatformError\"\n    RPCSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/RPCResult\" }\n    SurfaceBootstrapSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfaceBootstrap\" }\n    SurfacePreparationSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfacePreparation\" }\n    BridgeTokenSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/BridgeTokenResult\" }\n    SurfaceAssetSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfaceAssetResult\" }\n    SurfaceStreamSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfaceStreamResult\" }\n    SurfaceStreamAcknowledgementSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfaceStreamAcknowledgementResult\" }\n    SurfaceDisposeSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SurfaceDisposeResult\" }\n    SessionScopeRevokeSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/SessionScopeRevokeCompleteResult\" }\n    PluginRecordSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginRecord\" }\n    PluginCatalogSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginCatalogResult\" }\n    PluginFeaturesSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data:\n          type: array\n          uniqueItems: true\n          items:\n            type: string\n            enum: [release, runtime, capability, connectivity, secrets, core_action]\n    CompatibilitySuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginCompatibilityManifest\" }\n    PluginMethodConfirmationPreparationSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginMethodConfirmationPreparation\" }\n    ConfirmationRejectionSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/ConfirmationRejectionResult\" }\n    IntentListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginIntentList\" }\n    RetainedDataListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/RetainedDataList\" }\n    RetainedDataBindingSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginDataBinding\" }\n    RetainedDataCleanupSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/RetainedDataCleanupResult\" }\n    OperationRecordSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/OperationRecord\" }\n    OperationListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginOperationList\" }\n    RuntimeHealthSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginRuntimeHealth\" }\n    RuntimeStopSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginRuntimeStopResult\" }\n    RuntimeRefreshSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginRuntimeRefreshResult\" }\n    DataExportSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginDataExportResult\" }\n    DataExportDeleteSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginDataExportDeleteResult\" }\n    PermissionListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginPermissionList\" }\n    PermissionMutationSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginPermissionMutationResult\" }\n    SecurityPolicyListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecurityPolicyList\" }\n    SecurityPolicyRecordSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecurityPolicy\" }\n    SecurityPolicyDeleteSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecurityPolicyDeleteResult\" }\n    DiagnosticEventListSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginDiagnosticEventList\" }\n    SecretBindSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecretBindResult\" }\n    SecretTestSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecretTestResult\" }\n    SecretDeleteSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSecretDeleteResult\" }\n    SettingsSchemaSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSettingsSchema\" }\n    SettingsSnapshotSuccessResponse:\n      type: object\n      required: [ok, data]\n      additionalProperties: false\n      properties:\n        ok: { const: true }\n        data: { $ref: \"#/components/schemas/PluginSettingsSnapshot\" }\n    PlatformError:\n      oneOf:\n        - $ref: \"#/components/schemas/GenericPlatformError\"\n        - $ref: \"#/components/schemas/JSONLimitPlatformError\"\n        - $ref: \"#/components/schemas/PackageValidationPlatformError\"\n        - $ref: \"#/components/schemas/ManagementRevisionPlatformError\"\n        - $ref: \"#/components/schemas/AuthorizationRevisionPlatformError\"\n        - $ref: \"#/components/schemas/BindingRevisionPlatformError\"\n        - $ref: \"#/components/schemas/ValuesRevisionPlatformError\"\n        - $ref: \"#/components/schemas/CapabilityPlatformError\"\n        - $ref: \"#/components/schemas/WorkerPlatformError\"\n    MutationPlatformError:\n      oneOf:\n        - $ref: \"#/components/schemas/MutationGenericPlatformError\"\n        - $ref: \"#/components/schemas/MutationJSONLimitPlatformError\"\n        - $ref: \"#/components/schemas/MutationPackageValidationPlatformError\"\n        - $ref: \"#/components/schemas/MutationManagementRevisionPlatformError\"\n        - $ref: \"#/components/schemas/MutationAuthorizationRevisionPlatformError\"\n        - $ref: \"#/components/schemas/MutationBindingRevisionPlatformError\"\n        - $ref: \"#/components/schemas/MutationValuesRevisionPlatformError\"\n        - $ref: \"#/components/schemas/MutationCapabilityPlatformError\"\n        - $ref: \"#/components/schemas/MutationWorkerPlatformError\"\n        - $ref: \"#/components/schemas/MutationSessionTeardownPlatformError\"\n    GenericPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code:\n          $ref: \"#/components/schemas/GenericPlatformErrorCode\"\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details:\n          $ref: \"#/components/schemas/EmptyErrorDetails\"\n    JSONLimitPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_JSON_LIMIT_EXCEEDED }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/JSONLimitErrorDetails\" }\n    PackageValidationPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code:\n          type: string\n          enum: [PLUGIN_MANIFEST_INVALID, PLUGIN_PACKAGE_INVALID, PLUGIN_PACKAGE_TOO_LARGE, PLUGIN_PACKAGE_PATH_FORBIDDEN]\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/PackageValidationErrorDetails\" }\n    ManagementRevisionPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_MANAGEMENT_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/ManagementRevisionMismatchDetails\" }\n    AuthorizationRevisionPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_AUTHORIZATION_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/AuthorizationRevisionMismatchDetails\" }\n    BindingRevisionPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_BINDING_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/BindingRevisionMismatchDetails\" }\n    ValuesRevisionPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_VALUES_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/ValuesRevisionMismatchDetails\" }\n    CapabilityPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_CAPABILITY_ERROR }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/CapabilityBusinessErrorDetails\" }\n    WorkerPlatformError:\n      type: object\n      required: [code, message, details]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_WORKER_ERROR }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/WorkerErrorDetails\" }\n    MutationGenericPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { $ref: \"#/components/schemas/GenericPlatformErrorCode\" }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/EmptyErrorDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationJSONLimitPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_JSON_LIMIT_EXCEEDED }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/JSONLimitErrorDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationPackageValidationPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code:\n          type: string\n          enum: [PLUGIN_MANIFEST_INVALID, PLUGIN_PACKAGE_INVALID, PLUGIN_PACKAGE_TOO_LARGE, PLUGIN_PACKAGE_PATH_FORBIDDEN]\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/PackageValidationErrorDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationManagementRevisionPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_MANAGEMENT_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/ManagementRevisionMismatchDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationAuthorizationRevisionPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_AUTHORIZATION_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/AuthorizationRevisionMismatchDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationBindingRevisionPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_BINDING_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/BindingRevisionMismatchDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationValuesRevisionPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_VALUES_REVISION_MISMATCH }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/ValuesRevisionMismatchDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationCapabilityPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_CAPABILITY_ERROR }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/CapabilityBusinessErrorDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationWorkerPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_WORKER_ERROR }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/WorkerErrorDetails\" }\n        mutation_outcome: { $ref: \"#/components/schemas/MutationOutcome\" }\n    MutationSessionTeardownPlatformError:\n      type: object\n      required: [code, message, details, mutation_outcome]\n      additionalProperties: false\n      properties:\n        code: { const: PLUGIN_SESSION_TEARDOWN_INCOMPLETE }\n        message: { $ref: \"#/components/schemas/PlatformErrorMessage\" }\n        details: { $ref: \"#/components/schemas/SessionTeardownIncompleteErrorDetails\" }\n        mutation_outcome: { const: committed }\n    MutationOutcome:\n      type: string\n      enum: [committed, not_committed, unknown]\n    EmptyErrorDetails:\n      type: object\n      additionalProperties: false\n    JSONLimitErrorDetails:\n      type: object\n      required: [reason]\n      additionalProperties: false\n      properties:\n        reason:\n          type: string\n          enum: [payload_bytes, json_depth, prototype_key, number_precision]\n    PackageValidationErrorDetails:\n      type: object\n      required: [reason]\n      additionalProperties: false\n      properties:\n        reason:\n          type: string\n          enum: [manifest_missing, manifest_field, manifest_decode, zip_invalid, file_count, duplicate_entry, ambiguous_entry, non_regular_entry, invalid_utf8_path, non_nfc_path, symlink_entry, directory_entry, entry_bytes, path_length, compression_ratio, total_uncompressed_bytes, entry_open_failed, entry_read_failed, entry_close_failed, entry_size_mismatch, unsupported_signature_entry, manifest_artifact, package_asset_security, package_artifact_boundary, entry_path, manifest_canonical_json, canonical_hash, package_signature, empty_path, slash_separator, non_canonical_path, path_traversal, hidden_path, external_icon_path, unsupported_icon_format, missing_icon_asset, icon_magic_mismatch, query_or_fragment]\n        path:\n          type: string\n          description: Package-local entry path related to the error, when available.\n        pointer:\n          type: string\n          description: JSON Pointer into manifest.json related to the error, when available.\n    CapabilityBusinessErrorDetails:\n      type: object\n      additionalProperties: false\n      required: [capability_id, capability_version, detail_schema_sha256, business_error_code]\n      properties:\n        capability_id:\n          type: string\n          minLength: 1\n        capability_version:\n          $ref: \"#/components/schemas/StrictSemVer\"\n        detail_schema_sha256:\n          type: string\n          pattern: \"^[0-9a-f]{64}$\"\n        business_error_code:\n          type: string\n          pattern: \"^[A-Z][A-Z0-9_]*$\"\n        business_error_details:\n          type: object\n          additionalProperties: true\n    WorkerErrorDetails:\n      type: object\n      additionalProperties: false\n      required: [worker_error_code, worker_error_message, worker_error_origin]\n      properties:\n        worker_error_code:\n          type: string\n          pattern: \"^[A-Z][A-Z0-9_]*$\"\n        worker_error_message:\n          type: string\n          minLength: 1\n          maxLength: 4096\n        worker_error_origin:\n          type: string\n          enum: [runtime, hostcall, plugin]\n    SessionTeardownIncompleteErrorDetails:\n      type: object\n      additionalProperties: false\n      required: [session_scope]\n      properties:\n        session_scope:\n          $ref: \"#/components/schemas/SessionScopeRevokeIncompleteResult\"\n    ManagementRevisionMismatchDetails:\n      type: object\n      additionalProperties: false\n      required: [plugin_instance_id, expected_management_revision, actual_management_revision]\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        actual_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    AuthorizationRevisionMismatchDetails:\n      type: object\n      additionalProperties: false\n      required:\n        - plugin_instance_id\n        - expected_policy_revision\n        - actual_policy_revision\n        - expected_management_revision\n        - actual_management_revision\n        - expected_revoke_epoch\n        - actual_revoke_epoch\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        actual_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        actual_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        actual_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n    BindingRevisionMismatchDetails:\n      type: object\n      additionalProperties: false\n      required: [plugin_instance_id, expected_binding_revision, actual_binding_revision]\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        actual_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    ValuesRevisionMismatchDetails:\n      type: object\n      additionalProperties: false\n      required: [plugin_instance_id, expected_values_revision, actual_values_revision]\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        actual_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    ErrorCode:\n      $ref: \"../plugin/error-codes-v6.schema.json#/$defs/platform_error_code\"\n    PlatformErrorMessage:\n      type: string\n      minLength: 1\n      maxLength: 4096\n      pattern: \".*\\\\S.*\"\n    GenericPlatformErrorCode:\n      type: string\n      enum:\n        - PLUGIN_INVALID_REQUEST\n        - PLUGIN_SIGNATURE_INVALID\n        - PLUGIN_TRUST_STATE_DENIED\n        - PLUGIN_TRUST_VERIFICATION_REQUIRED\n        - PLUGIN_TRUST_VERIFICATION_INVALID\n        - PLUGIN_RELEASE_REF_VERIFICATION_FAILED\n        - PLUGIN_RELEASE_REF_POLICY_DENIED\n        - PLUGIN_DISABLED\n        - PLUGIN_DISABLED_BY_POLICY\n        - PLUGIN_PERMISSION_DENIED\n        - PLUGIN_ORIGIN_DENIED\n        - PLUGIN_ACTION_DENIED\n        - PLUGIN_OWNER_SCOPE_MISMATCH\n        - PLUGIN_SECRET_SCOPE_MISMATCH\n        - PLUGIN_STORAGE_SCOPE_MISMATCH\n        - PLUGIN_ADAPTER_FAILURE\n        - PLUGIN_SESSION_REVOKED\n        - PLUGIN_SESSION_TEARDOWN_INCOMPLETE\n        - PLUGIN_SESSION_FENCE_CAPACITY\n        - PLUGIN_CONFIRMATION_REQUIRED\n        - PLUGIN_CONFIRMATION_INVALID\n        - PLUGIN_TOKEN_EXPIRED\n        - PLUGIN_TOKEN_REPLAY\n        - PLUGIN_GATEWAY_TOKEN_INVALID\n        - PLUGIN_GATEWAY_TOKEN_REPLAYED\n        - PLUGIN_GATEWAY_TOKEN_CHANNEL_MISMATCH\n        - PLUGIN_ASSET_TICKET_INVALID\n        - PLUGIN_ASSET_SESSION_INVALID\n        - PLUGIN_STREAM_TICKET_INVALID\n        - PLUGIN_STREAM_DELIVERY_INVALID\n        - PLUGIN_STREAM_CANCELLED\n        - PLUGIN_LEASE_INVALID\n        - PLUGIN_LEASE_REPLAYED\n        - PLUGIN_GRANT_INVALID\n        - PLUGIN_STORAGE_QUOTA_EXCEEDED\n        - PLUGIN_OPERATION_BLOCKED\n        - PLUGIN_OPERATION_NOT_FOUND\n        - PLUGIN_OPERATION_NOT_CANCELABLE\n        - PLUGIN_NETWORK_TARGET_DENIED\n        - PLUGIN_NETWORK_RATE_LIMITED\n        - PLUGIN_RUNTIME_UNAVAILABLE\n        - PLUGIN_RUNTIME_VERSION_MISMATCH\n        - PLUGIN_RUNTIME_CONTRACT_MISMATCH\n        - PLUGIN_UI_PROTOCOL_UNSUPPORTED\n        - PLUGIN_UI_PROTOCOL_VIOLATION\n        - PLUGIN_SURFACE_QUIESCE_TIMEOUT\n        - PLUGIN_CONTRACT_MISMATCH\n        - PLUGIN_CSRF_REQUIRED\n        - PLUGIN_CSRF_INVALID\n        - PLUGIN_FEATURE_NOT_CONFIGURED\n    SurfaceDisposeResult:\n      type: object\n      required: [disposed]\n      additionalProperties: false\n      properties:\n        disposed: { const: true }\n    SessionScopeRevokeCounts:\n      $ref: \"../plugin/session-scope-v1.schema.json#/$defs/revoke_counts\"\n    SessionScopeRevokeResult:\n      $ref: \"../plugin/session-scope-v1.schema.json#/$defs/public_revoke_result\"\n    SessionScopeRevokeCompleteResult:\n      $ref: \"../plugin/session-scope-v1.schema.json#/$defs/complete_revoke_result\"\n    SessionScopeRevokeIncompleteResult:\n      $ref: \"../plugin/session-scope-v1.schema.json#/$defs/incomplete_revoke_result\"\n    PluginCatalogResult:\n      type: object\n      required: [plugins]\n      additionalProperties: false\n      properties:\n        plugins:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginRecord\" }\n    PluginCompatibilityManifest:\n      $ref: \"../plugin/compatibility-manifest-v8.schema.json\"\n    PluginOperationList:\n      type: object\n      required: [operations]\n      additionalProperties: false\n      properties:\n        operations:\n          type: array\n          items: { $ref: \"#/components/schemas/OperationRecord\" }\n        next_cursor: { type: string, maxLength: 1024 }\n    PluginIntentRecord:\n      type: object\n      required: [plugin_id, plugin_instance_id, publisher_id, display_name, version, active_fingerprint, intent_id, method, effect, execution]\n      additionalProperties: false\n      properties:\n        plugin_id: { type: string }\n        plugin_instance_id: { type: string }\n        publisher_id: { type: string }\n        display_name: { type: string }\n        version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        active_fingerprint: { type: string }\n        intent_id: { type: string }\n        method: { type: string }\n        effect: { type: string, enum: [read, write, delete, execute, admin] }\n        execution: { type: string, enum: [sync, operation, subscription] }\n        payload_schema:\n          type: object\n          additionalProperties: true\n    PluginIntentList:\n      type: object\n      required: [intents]\n      additionalProperties: false\n      properties:\n        intents:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginIntentRecord\" }\n    PluginPermissionGrant:\n      type: object\n      description: Explicit public HTTP projection of a permission grant. Internal actor ownership hashes are never returned.\n      required: [plugin_instance_id, permission_id, effect, granted_at]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string }\n        permission_id: { type: string }\n        effect: { type: string, enum: [grant, deny] }\n        granted_at: { type: string, format: date-time }\n        expires_at: { type: string, format: date-time }\n        revoked_at: { type: string, format: date-time }\n        revoked_reason: { type: string }\n    PluginPermissionList:\n      type: object\n      required: [permissions]\n      additionalProperties: false\n      properties:\n        permissions:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginPermissionGrant\" }\n    AuthorizationRevisions:\n      type: object\n      required: [policy_revision, management_revision, revoke_epoch]\n      additionalProperties: false\n      properties:\n        policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n    PluginPermissionMutationResult:\n      type: object\n      required: [permission, revisions]\n      additionalProperties: false\n      properties:\n        permission: { $ref: \"#/components/schemas/PluginPermissionGrant\" }\n        revisions: { $ref: \"#/components/schemas/AuthorizationRevisions\" }\n    PluginSecurityPolicy:\n      type: object\n      required: [plugin_instance_id, allowed_permissions, denied_methods, policy_revision, management_revision, revoke_epoch, updated_at]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        allowed_permissions:\n          type: array\n          uniqueItems: true\n          items: { type: string, minLength: 1 }\n        denied_methods:\n          type: array\n          uniqueItems: true\n          items: { type: string, minLength: 1 }\n        policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        updated_at: { type: string, format: date-time }\n    PluginSecurityPolicyList:\n      type: object\n      required: [security_policies]\n      additionalProperties: false\n      properties:\n        security_policies:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginSecurityPolicy\" }\n    PluginSecurityPolicyDeleteResult:\n      type: object\n      required: [plugin_instance_id, deleted, policy_revision, management_revision, revoke_epoch]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        deleted: { const: true }\n        policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n    DiagnosticMutationOutcome:\n      type: string\n      enum: [committed, not_committed, unknown]\n    PluginDiagnosticDetails:\n      type: object\n      additionalProperties: false\n      properties:\n        operations_deleted: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        streams_deleted: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        invocation_id: { type: string }\n        method: { type: string }\n        failure_code: { type: string }\n        runtime_process_failure_code:\n          $ref: \"../plugin/error-codes-v6.schema.json#/$defs/runtime_process_failure_code\"\n        operation_id: { type: string }\n        stream_id: { type: string }\n        runtime_instance_id: { type: string }\n        runtime_generation_id: { type: string }\n        runtime_version: { type: string }\n        rust_ipc_version: { type: string }\n        wasm_abi_version: { type: string }\n        contract_set_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n        runtime_target_os: { type: string }\n        runtime_target_arch: { type: string }\n        runtime_binary_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n        os: { type: string }\n        arch: { type: string }\n        stream: { type: string }\n        package_hash: { type: string }\n        artifact: { type: string }\n        plugin_instance_id: { type: string }\n        store_id: { type: string }\n        operation: { type: string }\n        hostcall: { type: string }\n        code: { type: string }\n        connector_id: { type: string }\n        transport: { type: string }\n        revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        stage_id: { type: string }\n        reason: { type: string }\n        surface_instance_id: { type: string }\n    PluginDiagnosticEvent:\n      type: object\n      required: [type, severity, message]\n      additionalProperties: false\n      properties:\n        event_id: { type: string }\n        type: { type: string }\n        severity: { type: string, enum: [info, warning] }\n        message: { type: string }\n        plugin_id: { type: string }\n        plugin_instance_id: { type: string }\n        surface_id: { type: string }\n        surface_instance_id: { type: string }\n        active_fingerprint: { type: string }\n        request_id: { type: string }\n        correlation_id: { type: string }\n        mutation_outcome: { $ref: \"#/components/schemas/DiagnosticMutationOutcome\" }\n        occurred_at: { type: string, format: date-time }\n        details: { $ref: \"#/components/schemas/PluginDiagnosticDetails\" }\n    PluginDiagnosticEventList:\n      type: object\n      required: [diagnostic_events]\n      additionalProperties: false\n      properties:\n        diagnostic_events:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginDiagnosticEvent\" }\n    PluginRuntimeShardHealth:\n      type: object\n      description: Explicit public HTTP projection of runtime shard health. IPC channel credentials and connection nonces are excluded.\n      required: [runtime_shard_id, runtime_instance_id, runtime_generation_id, descriptor, ready, active_invocations, queued_invocations, limits, module_cache]\n      additionalProperties: false\n      properties:\n        runtime_shard_id: { type: string }\n        runtime_instance_id: { type: string }\n        runtime_generation_id: { type: string }\n        descriptor: { $ref: \"#/components/schemas/RuntimeDescriptor\" }\n        ready: { type: boolean }\n        active_invocations: { type: integer, minimum: 0 }\n        queued_invocations: { type: integer, minimum: 0 }\n        limits: { $ref: \"#/components/schemas/RuntimeLimits\" }\n        module_cache: { $ref: \"#/components/schemas/RuntimeModuleCacheMetrics\" }\n    PluginRuntimeHealth:\n      type: object\n      description: Explicit public HTTP projection of runtime manager health.\n      required: [ready, descriptor, shards]\n      additionalProperties: false\n      properties:\n        ready: { type: boolean }\n        descriptor: { $ref: \"#/components/schemas/RuntimeDescriptor\" }\n        shards:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginRuntimeShardHealth\" }\n    RuntimeTarget:\n      oneOf:\n        - type: object\n          required: [os, arch]\n          additionalProperties: false\n          properties:\n            os: { const: darwin }\n            arch: { const: amd64 }\n        - type: object\n          required: [os, arch]\n          additionalProperties: false\n          properties:\n            os: { const: darwin }\n            arch: { const: arm64 }\n        - type: object\n          required: [os, arch]\n          additionalProperties: false\n          properties:\n            os: { const: linux }\n            arch: { const: amd64 }\n        - type: object\n          required: [os, arch]\n          additionalProperties: false\n          properties:\n            os: { const: linux }\n            arch: { const: arm64 }\n    RuntimeAdmissionTarget:\n      type: string\n      enum: [linux/amd64, linux/arm64]\n    StrictSemVer:\n      type: string\n      pattern: '^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\+[0-9A-Za-z-]+(?:\\.[0-9A-Za-z-]+)*)?$'\n    RuntimeDescriptor:\n      type: object\n      required: [schema_version, platform_version, target, rust_ipc_version, wasm_abi_version, contract_set_sha256, binary_sha256]\n      additionalProperties: false\n      properties:\n        schema_version: { const: runtime-descriptor-v2 }\n        platform_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        target: { $ref: \"#/components/schemas/RuntimeAdmissionTarget\" }\n        rust_ipc_version: { const: rust-ipc-v6 }\n        wasm_abi_version: { const: redevplugin-wasm-worker-v2 }\n        contract_set_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n        binary_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n    RuntimeLimits:\n      type: object\n      description: \"Negotiated runtime capacities. per_plugin_concurrency must not exceed worker_count. Route capacities are derived exactly from negotiated limits: active hostcall routes = worker_count, canceled hostcall retention = worker_count + queue_capacity, and compile-flight artifact routes = worker_count.\"\n      required: [worker_count, queue_capacity, per_plugin_concurrency, module_cache_entries, module_cache_source_bytes]\n      additionalProperties: false\n      properties:\n        worker_count: { type: integer, minimum: 1, maximum: 64, description: \"Number of runtime worker threads.\" }\n        queue_capacity: { type: integer, minimum: 1, maximum: 64, description: \"Maximum queued worker invocations.\" }\n        per_plugin_concurrency: { type: integer, minimum: 1, maximum: 64, description: \"Maximum concurrent invocations for one plugin; must not exceed worker_count.\" }\n        module_cache_entries: { type: integer, minimum: 1, maximum: 1024, description: \"Maximum compiled modules retained by the runtime cache.\" }\n        module_cache_source_bytes: { type: integer, minimum: 1, maximum: 134217728, description: \"Maximum source WASM bytes retained by the runtime cache (128 MiB).\" }\n    RuntimeModuleCacheMetrics:\n      type: object\n      required: [hits, misses, compiles, entries, source_bytes]\n      additionalProperties: false\n      properties:\n        hits: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        misses: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        compiles: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        entries: { type: integer, minimum: 0, maximum: 1024 }\n        source_bytes: { type: integer, minimum: 0, maximum: 134217728 }\n    PluginRuntimeStopResult:\n      type: object\n      required: [stopped]\n      additionalProperties: false\n      properties:\n        stopped: { const: true }\n    PluginRuntimeRefreshResult:\n      type: object\n      required: [results]\n      additionalProperties: false\n      properties:\n        results:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginRuntimeRefreshEntry\" }\n    PluginRuntimeRefreshEntry:\n      oneOf:\n        - $ref: \"#/components/schemas/PluginRuntimeRefreshSuccess\"\n        - $ref: \"#/components/schemas/PluginRuntimeRefreshFailure\"\n    PluginRuntimeRefreshSuccess:\n      type: object\n      required: [plugin_instance_id, status]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        status: { const: refreshed }\n    PluginRuntimeRefreshFailure:\n      type: object\n      required: [plugin_instance_id, status, error]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        status: { const: failed }\n        error: { $ref: \"#/components/schemas/PluginRuntimeRefreshPublicError\" }\n    PluginRuntimeRefreshPublicError:\n      type: object\n      required: [code, message]\n      additionalProperties: false\n      properties:\n        code:\n          type: string\n          enum: [PLUGIN_RUNTIME_UNAVAILABLE]\n        message: { const: \"Plugin runtime state could not be refreshed\" }\n    PluginDataExportResult:\n      type: object\n      required: [bundle_ref]\n      additionalProperties: false\n      properties:\n        bundle_ref: { type: string, minLength: 1 }\n    PluginDataExportDeleteResult:\n      type: object\n      required: [deleted]\n      additionalProperties: false\n      properties:\n        deleted: { const: true }\n    PluginSecretBindResult:\n      type: object\n      required: [bound]\n      additionalProperties: false\n      properties:\n        bound: { const: true }\n    PluginSecretTestResult:\n      type: object\n      required: [tested]\n      additionalProperties: false\n      properties:\n        tested: { const: true }\n    PluginSecretDeleteResult:\n      type: object\n      required: [deleted]\n      additionalProperties: false\n      properties:\n        deleted: { const: true }\n    PluginSettingsField:\n      type: object\n      required: [key, type, label, scope]\n      additionalProperties: false\n      properties:\n        key: { type: string }\n        type: { type: string }\n        label: { type: string }\n        scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n        default: true\n        secret_ref: { type: string }\n        options:\n          type: array\n          items: { type: string }\n        validation:\n          type: object\n          additionalProperties: true\n    PluginSettingsSchema:\n      type: object\n      description: Explicit public HTTP projection of the settings schema for one owner scope.\n      required: [plugin_instance_id, scope, schema_version, fields, values_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string }\n        scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n        schema_version: { type: integer, minimum: 1 }\n        fields:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginSettingsField\" }\n        values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    PluginSettingsSnapshot:\n      type: object\n      description: Explicit public HTTP projection of settings values and redacted secret metadata for one owner scope.\n      required: [plugin_instance_id, scope, schema_version, values_revision, values, secret_metadata]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string }\n        scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n        schema_version: { type: integer, minimum: 1 }\n        values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        values:\n          type: object\n          additionalProperties: true\n        secret_metadata:\n          type: array\n          items: { $ref: \"#/components/schemas/PluginSettingsSecretMetadata\" }\n    PluginSettingsSecretMetadata:\n      type: object\n      required: [key, secret_ref, scope, bound]\n      additionalProperties: false\n      properties:\n        key: { type: string, minLength: 1 }\n        secret_ref: { type: string, minLength: 1 }\n        scope: { type: string, enum: [user, environment] }\n        bound: { type: boolean }\n        last_test_status: { type: string }\n        bound_at: { type: string, format: date-time }\n        tested_at: { type: string, format: date-time }\n        updated_at: { type: string, format: date-time }\n    TrustState:\n      type: string\n      enum: [verified, unsigned_local, untrusted, needs_review, trust_unavailable, blocked_security]\n    TrustHashSet:\n      type: object\n      required: [package_sha256, manifest_sha256, entries_sha256]\n      additionalProperties: false\n      properties:\n        package_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        manifest_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        entries_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n    VerifiedSignature:\n      type: object\n      required: [algorithm, key_id]\n      additionalProperties: false\n      properties:\n        algorithm: { type: string, minLength: 1 }\n        key_id: { type: string, minLength: 1 }\n    TrustAssessment:\n      type: object\n      required: [trust_state, verified_hashes]\n      additionalProperties: false\n      properties:\n        trust_state:\n          $ref: \"#/components/schemas/TrustState\"\n        reason_codes:\n          type: array\n          items: { type: string }\n        verified_hashes:\n          $ref: \"#/components/schemas/TrustHashSet\"\n        verified_signature:\n          $ref: \"#/components/schemas/VerifiedSignature\"\n        trust_assessment_epoch: { type: string }\n        policy_epoch: { type: string }\n        revocation_epoch: { type: string }\n        metadata:\n          type: object\n          additionalProperties: { type: string }\n    PluginVersion:\n      type: object\n      required: [version, active_fingerprint, package_hash, manifest_hash, entries_hash, trust_state, trust_assessment, manifest, package_entries, activated_at]\n      additionalProperties: false\n      properties:\n        version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        active_fingerprint: { type: string, minLength: 1 }\n        package_hash: { type: string, minLength: 1 }\n        manifest_hash: { type: string, minLength: 1 }\n        entries_hash: { type: string, minLength: 1 }\n        trust_state:\n          $ref: \"#/components/schemas/TrustState\"\n        trust_assessment:\n          $ref: \"#/components/schemas/TrustAssessment\"\n        source_policy_snapshot_hash: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        source_policy_snapshot:\n          type: object\n          additionalProperties: true\n        local_import_provenance:\n          $ref: \"#/components/schemas/LocalImportProvenance\"\n        capability_contracts:\n          type: array\n          items: { $ref: \"#/components/schemas/CapabilityContractPin\" }\n        manifest:\n          $ref: \"../plugin/manifest-v5.schema.json\"\n        package_entries:\n          type: array\n          items: { $ref: \"#/components/schemas/PackageEntry\" }\n        runtime_requirement: { $ref: \"#/components/schemas/RuntimeRequirement\" }\n        activated_at: { type: string, format: date-time }\n        metadata:\n          type: object\n          additionalProperties: { type: string }\n    PluginRecord:\n      type: object\n      description: Explicit public HTTP projection of a registry record. Persistent owner identity is excluded.\n      required: [plugin_instance_id, publisher_id, plugin_id, version, active_fingerprint, package_hash, manifest_hash, entries_hash, trust_state, trust_assessment, enable_state, policy_revision, management_revision, revoke_epoch, manifest, package_entries, installed_at, updated_at]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        publisher_id: { type: string }\n        plugin_id: { type: string, minLength: 1 }\n        version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        active_fingerprint: { type: string, minLength: 1 }\n        package_hash: { type: string }\n        manifest_hash: { type: string }\n        entries_hash: { type: string }\n        trust_state:\n          $ref: \"#/components/schemas/TrustState\"\n        trust_assessment:\n          $ref: \"#/components/schemas/TrustAssessment\"\n        source_policy_snapshot_hash: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        source_policy_snapshot:\n          type: object\n          additionalProperties: true\n        local_import_provenance:\n          $ref: \"#/components/schemas/LocalImportProvenance\"\n        capability_contracts:\n          type: array\n          items: { $ref: \"#/components/schemas/CapabilityContractPin\" }\n        enable_state:\n          type: string\n          enum: [disabled, enabled, disabled_by_policy, disabled_incompatible]\n        disabled_reason: { type: string }\n        policy_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        management_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        manifest:\n          $ref: \"../plugin/manifest-v5.schema.json\"\n        package_entries:\n          type: array\n          items: { $ref: \"#/components/schemas/PackageEntry\" }\n        runtime_requirement: { $ref: \"#/components/schemas/RuntimeRequirement\" }\n        version_history:\n          type: array\n          items:\n            $ref: \"#/components/schemas/PluginVersion\"\n        installed_at: { type: string, format: date-time }\n        enabled_at: { type: string, format: date-time }\n        updated_at: { type: string, format: date-time }\n        deleted_at: { type: string, format: date-time }\n        metadata:\n          type: object\n          additionalProperties: { type: string }\n    PackageEntry:\n      type: object\n      required: [path, size, sha256, mode]\n      additionalProperties: false\n      properties:\n        path: { type: string, minLength: 1 }\n        size: { type: integer, minimum: 0 }\n        sha256: { type: string, pattern: \"^[0-9a-f]{64}$\" }\n        mode: { type: string, minLength: 1 }\n        content_type: { type: string }\n    RuntimeRequirement:\n      type: object\n      required: [min_version]\n      additionalProperties: false\n      properties:\n        min_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        supported_targets:\n          type: array\n          uniqueItems: true\n          items:\n            type: string\n            enum: [darwin/amd64, darwin/arm64, linux/amd64, linux/arm64]\n    LocalImportProvenance:\n      type: object\n      required: [import_id, distribution, policy_epoch, unsigned_policy, assessed_at]\n      additionalProperties: false\n      properties:\n        import_id: { type: string, minLength: 1 }\n        distribution: { enum: [local_import] }\n        policy_epoch: { type: string, minLength: 1 }\n        unsigned_policy: { enum: [dev_only, review_required, block] }\n        assessed_at: { type: string, format: date-time }\n    PackageHashSet:\n      type: object\n      required: [package_sha256, manifest_sha256, entries_sha256]\n      additionalProperties: false\n      properties:\n        package_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        manifest_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        entries_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n    PluginReleaseRef:\n      type: object\n      required: [source_id, channel, release_metadata_ref, release_metadata_sha256, publisher_id, plugin_id, version, expected_hashes]\n      additionalProperties: false\n      properties:\n        source_id: { type: string, minLength: 1 }\n        channel: { type: string, pattern: \"^[a-z][a-z0-9._-]{0,127}$\" }\n        release_metadata_ref: { type: string, minLength: 1 }\n        release_metadata_sha256: { type: string, pattern: \"^(sha256:)?[0-9a-f]{64}$\" }\n        publisher_id: { type: string, minLength: 1 }\n        plugin_id: { type: string, minLength: 1 }\n        version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        expected_hashes:\n          $ref: \"#/components/schemas/PackageHashSet\"\n    InstallReleaseRefRequest:\n      type: object\n      required: [plugin_instance_id, release_ref]\n      additionalProperties: false\n      properties:\n        release_ref:\n          $ref: \"#/components/schemas/PluginReleaseRef\"\n        plugin_instance_id: { type: string, minLength: 1 }\n    UpdateReleaseRefRequest:\n      type: object\n      required: [plugin_instance_id, release_ref, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        release_ref:\n          $ref: \"#/components/schemas/PluginReleaseRef\"\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    DowngradeRequest:\n      type: object\n      required: [plugin_instance_id, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        package_hash: { type: string }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    EnableRequest:\n      type: object\n      required: [plugin_instance_id, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    DisableRequest:\n      type: object\n      required: [plugin_instance_id, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        reason: { type: string }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    UninstallRequest:\n      type: object\n      required: [plugin_instance_id, delete_data, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        delete_data: { type: boolean }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    OpenSurfaceRequest:\n      type: object\n      required: [plugin_instance_id, surface_id, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        surface_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    RevokeSessionScopeRequest:\n      type: object\n      additionalProperties: false\n      maxProperties: 0\n    EmptyRequest:\n      type: object\n      additionalProperties: false\n      maxProperties: 0\n    EmptyQueryRequest:\n      type: object\n      additionalProperties: false\n      maxProperties: 0\n    ListIntentsQueryRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        intent_id: { type: string, minLength: 1 }\n        plugin_instance_id: { type: string, minLength: 1 }\n    ListOperationsQueryRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        cursor: { type: string, minLength: 1, maxLength: 1024 }\n        limit: { type: integer, minimum: 1, maximum: 500 }\n    ListRetainedDataQueryRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n    ListPermissionsQueryRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        active_only: { type: boolean }\n    ListDiagnosticsQueryRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        plugin_id: { type: string, minLength: 1 }\n        plugin_instance_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string, minLength: 1 }\n        type: { type: string, minLength: 1 }\n        severity: { type: string, enum: [info, warning] }\n        limit: { type: integer, minimum: 1, maximum: 1000 }\n    SettingsQueryRequest:\n      type: object\n      additionalProperties: false\n      required: [scope]\n      properties:\n        scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n    SurfaceBootstrap:\n      type: object\n      additionalProperties: false\n      required:\n        - plugin_id\n        - plugin_instance_id\n        - plugin_version\n        - surface_id\n        - surface_instance_id\n        - active_fingerprint\n        - entry_path\n        - entry_sha256\n        - asset_session_nonce\n        - management_revision\n        - revoke_epoch\n        - runtime_generation_id\n        - asset_ticket\n        - asset_ticket_id\n        - bridge_nonce\n        - issued_at\n        - expires_at\n      properties:\n        plugin_id: { type: string, minLength: 1 }\n        plugin_instance_id: { type: string, minLength: 1 }\n        plugin_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        surface_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string, minLength: 1 }\n        active_fingerprint: { type: string, minLength: 1 }\n        entry_path: { type: string, minLength: 1 }\n        entry_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n        asset_session_nonce: { type: string, minLength: 16 }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        runtime_generation_id: { type: string, minLength: 1 }\n        asset_ticket: { type: string, minLength: 1 }\n        asset_ticket_id: { type: string, minLength: 1 }\n        bridge_nonce: { type: string, minLength: 16 }\n        issued_at: { type: string, format: date-time }\n        expires_at: { type: string, format: date-time }\n    PrepareSurfaceRequest:\n      type: object\n      required: [asset_ticket]\n      additionalProperties: false\n      properties:\n        asset_ticket: { type: string, minLength: 1 }\n    SurfacePreparation:\n      type: object\n      additionalProperties: false\n      required:\n        - asset_session\n        - asset_session_id\n        - asset_session_nonce\n        - entry_path\n        - entry_sha256\n        - management_revision\n        - revoke_epoch\n        - issued_at\n        - expires_at\n        - document\n      properties:\n        asset_session: { type: string, minLength: 1 }\n        asset_session_id: { type: string, minLength: 1 }\n        asset_session_nonce: { type: string, minLength: 16 }\n        entry_path: { type: string, minLength: 1 }\n        entry_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        issued_at: { type: string, format: date-time }\n        expires_at: { type: string, format: date-time }\n        document:\n          $ref: \"../plugin/opaque-surface-document-v3.schema.json\"\n    TrustedParentBridgeHandshake:\n      type: object\n      required: [type, plugin_id, surface_id, surface_instance_id, active_fingerprint, bridge_nonce, asset_session_nonce, management_revision, revoke_epoch, ui_protocol_version]\n      additionalProperties: false\n      properties:\n        type: { const: redevplugin.bridge.handshake }\n        plugin_id: { type: string, minLength: 1 }\n        surface_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string, minLength: 1 }\n        active_fingerprint: { type: string, minLength: 1 }\n        bridge_nonce: { type: string, minLength: 16 }\n        asset_session_nonce: { type: string, minLength: 16 }\n        management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        revoke_epoch: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        ui_protocol_version: { const: plugin-ui-v5 }\n    TrustedParentBridgeTokenRequest:\n      type: object\n      required: [handshake, bridge_channel_id, handshake_transcript_sha256]\n      additionalProperties: false\n      properties:\n        handshake:\n          $ref: \"#/components/schemas/TrustedParentBridgeHandshake\"\n        bridge_channel_id: { type: string, minLength: 1 }\n        handshake_transcript_sha256:\n          type: string\n          pattern: '^sha256:[0-9a-f]{64}$'\n        previous_plugin_gateway_token:\n          type: string\n          minLength: 1\n          description: Required only when renewing the current bridge channel lease.\n    BridgeTokenResult:\n      type: object\n      additionalProperties: false\n      required: [plugin_gateway_token, plugin_gateway_token_id, asset_session, asset_session_id, issued_at, expires_at]\n      properties:\n        plugin_gateway_token: { type: string, minLength: 1 }\n        plugin_gateway_token_id: { type: string, minLength: 1 }\n        asset_session: { type: string, minLength: 1 }\n        asset_session_id: { type: string, minLength: 1 }\n        issued_at: { type: string, format: date-time }\n        expires_at: { type: string, format: date-time }\n    ReadSurfaceAssetRequest:\n      type: object\n      additionalProperties: false\n      required: [asset_session, asset_session_id, binding_id]\n      properties:\n        asset_session: { type: string, minLength: 1 }\n        asset_session_id: { type: string, minLength: 1 }\n        binding_id: { type: string, pattern: '^asset_[A-Za-z0-9_-]{8,128}$' }\n    SurfaceAssetResult:\n      type: object\n      additionalProperties: false\n      required: [path, sha256, content_type, content_base64]\n      properties:\n        path: { type: string, minLength: 1 }\n        sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n        content_type: { type: string, minLength: 1 }\n        content_base64: { type: string, contentEncoding: base64 }\n    ReadSurfaceStreamRequest:\n      type: object\n      additionalProperties: false\n      required: [stream_id, stream_ticket, read_id]\n      properties:\n        stream_id: { type: string, minLength: 1 }\n        stream_ticket: { type: string, minLength: 1 }\n        read_id: { type: string, pattern: '^read_[A-Za-z0-9_-]{8,128}$' }\n    AcknowledgeSurfaceStreamRequest:\n      type: object\n      additionalProperties: false\n      required: [stream_id, stream_ticket, delivery_id]\n      properties:\n        stream_id: { type: string, minLength: 1 }\n        stream_ticket: { type: string, minLength: 1 }\n        delivery_id: { type: string, pattern: '^delivery_[A-Za-z0-9_-]{8,128}$' }\n    SurfaceStreamResult:\n      type: object\n      additionalProperties: false\n      required: [read_id, events, done]\n      properties:\n        delivery_id: { type: string, pattern: '^delivery_[A-Za-z0-9_-]{8,128}$' }\n        read_id: { type: string, pattern: '^read_[A-Za-z0-9_-]{8,128}$' }\n        events:\n          type: array\n          items:\n            $ref: \"#/components/schemas/StreamEvent\"\n        done: { type: boolean }\n        terminal_status:\n          enum: [closed, canceled, failed, orphaned_after_disable, orphaned_after_uninstall]\n      allOf:\n        - if:\n            properties: { events: { minItems: 1 } }\n            required: [events]\n          then:\n            required: [delivery_id]\n        - if:\n            properties: { done: { const: false } }\n            required: [done]\n          then:\n            not:\n              required: [terminal_status]\n        - if:\n            properties: { done: { const: true } }\n            required: [done]\n          then:\n            required: [delivery_id, terminal_status]\n    SurfaceStreamAcknowledgementResult:\n      type: object\n      required: [acknowledged]\n      additionalProperties: false\n      properties:\n        acknowledged: { const: true }\n    CancelSurfaceOperationRequest:\n      type: object\n      additionalProperties: false\n      required: [operation_id, bridge_channel_id]\n      properties:\n        operation_id: { type: string, pattern: '^operation_[A-Za-z0-9_-]{8,150}$' }\n        bridge_channel_id: { type: string, minLength: 1, maxLength: 256 }\n        reason: { type: string, maxLength: 256 }\n    RejectSurfaceConfirmationRequest:\n      type: object\n      additionalProperties: false\n      required: [plugin_instance_id, bridge_channel_id, plugin_gateway_token, confirmation_id]\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        bridge_channel_id: { type: string, minLength: 1, maxLength: 256 }\n        plugin_gateway_token: { type: string, minLength: 1 }\n        confirmation_id: { type: string, pattern: '^confirmation_[A-Za-z0-9_-]{8,128}$' }\n    ConfirmationRejectionResult:\n      type: object\n      additionalProperties: false\n      required: [rejected]\n      properties:\n        rejected: { const: true }\n    StreamEvent:\n      type: object\n      additionalProperties: false\n      required: [stream_id, sequence, kind, at]\n      properties:\n        stream_id: { type: string, minLength: 1 }\n        sequence: { type: integer, minimum: 0 }\n        kind: { type: string, minLength: 1 }\n        data: { type: string, contentEncoding: base64 }\n        error: { type: string }\n        at: { type: string, format: date-time }\n    DisposeSurfaceRequest:\n      type: object\n      additionalProperties: false\n      required: [bridge_nonce]\n      properties:\n        bridge_nonce: { type: string, minLength: 16 }\n    RPCRequest:\n      type: object\n      required: [plugin_instance_id, surface_instance_id, bridge_channel_id, plugin_gateway_token, method]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string, minLength: 1 }\n        bridge_channel_id: { type: string, minLength: 1 }\n        plugin_gateway_token: { type: string, minLength: 1 }\n        confirmation_id: { type: string }\n        method: { type: string, minLength: 1 }\n        params:\n          type: object\n          additionalProperties: true\n    PrepareMethodConfirmationRequest:\n      type: object\n      required: [plugin_instance_id, surface_instance_id, bridge_channel_id, plugin_gateway_token, method]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        surface_instance_id: { type: string, minLength: 1 }\n        bridge_channel_id: { type: string, minLength: 1 }\n        plugin_gateway_token: { type: string, minLength: 1 }\n        method: { type: string, minLength: 1 }\n        params:\n          type: object\n          additionalProperties: true\n    RPCResult:\n      oneOf:\n        - type: object\n          additionalProperties: false\n          properties:\n            data: true\n          not:\n            anyOf:\n              - required: [operation_id]\n              - required: [stream_id]\n              - required: [confirmation_required]\n        - type: object\n          additionalProperties: false\n          required: [operation_id]\n          properties:\n            data: true\n            operation_id: { type: string, minLength: 1 }\n        - type: object\n          additionalProperties: false\n          required: [operation_id, stream_id, stream_ticket, stream_ticket_id, stream_expires_at]\n          properties:\n            data: true\n            operation_id: { type: string, minLength: 1 }\n            stream_id: { type: string, minLength: 1 }\n            stream_ticket: { type: string, minLength: 1 }\n            stream_ticket_id: { type: string, minLength: 1 }\n            stream_expires_at: { type: string, format: date-time }\n        - type: object\n          additionalProperties: false\n          required: [confirmation_required, confirmation_token_id, request_hash, plan_hash]\n          properties:\n            confirmation_required: { const: true }\n            confirmation_token_id: { type: string, minLength: 1 }\n            request_hash: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n            plan_hash: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n    RiskFlag:\n      type: object\n      required: [id, severity, summary]\n      additionalProperties: false\n      properties:\n        id:\n          type: string\n          minLength: 1\n          description: Stable machine-readable risk identifier.\n        severity:\n          type: string\n          enum: [info, low, medium, high, critical]\n        summary: { type: string, minLength: 1 }\n        description: { type: string }\n        requires_confirmation: { type: boolean }\n        requires_admin: { type: boolean }\n        data_loss_risk: { type: boolean }\n        destructive: { type: boolean }\n    RiskPlan:\n      type: object\n      required: [schema_version, summary, risk_flags]\n      additionalProperties: false\n      properties:\n        schema_version: { const: redevplugin.capability.risk_plan.v1 }\n        capability_id: { type: string }\n        binding_id: { type: string }\n        method: { type: string }\n        target_method: { type: string }\n        action: { type: string }\n        effect:\n          type: string\n          enum: [read, write, execute, delete, admin]\n        resource_ref: { type: string }\n        resource_display_name: { type: string }\n        summary: { type: string, minLength: 1 }\n        risk_flags:\n          type: array\n          items:\n            $ref: \"#/components/schemas/RiskFlag\"\n        requires_confirmation: { type: boolean }\n        requires_admin: { type: boolean }\n        data_loss_risk: { type: boolean }\n        destructive: { type: boolean }\n        deny_reason: { type: string }\n        details:\n          type: object\n          additionalProperties: true\n    PluginMethodConfirmationPreparation:\n      type: object\n      required: [confirmation_id, confirmation_token_id, request_hash, plan_hash, expires_at]\n      additionalProperties: false\n      properties:\n        confirmation_id: { type: string, minLength: 1 }\n        confirmation_token_id:\n          type: string\n          minLength: 1\n          description: Opaque audit/display id for the server-held confirmation token. It is not a credential.\n        request_hash:\n          type: string\n          pattern: \"^sha256:[0-9a-f]{64}$\"\n        plan_hash:\n          type: string\n          pattern: \"^sha256:[0-9a-f]{64}$\"\n        plan:\n          description: Host-redacted confirmation plan payload returned by the declared preflight method, when available.\n          oneOf:\n            - $ref: \"#/components/schemas/RiskPlan\"\n            - type: object\n              additionalProperties: true\n        expires_at: { type: string, format: date-time }\n    InvokeIntentRequest:\n      type: object\n      required: [intent_id]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string }\n        intent_id: { type: string, minLength: 1 }\n        params:\n          type: object\n          additionalProperties: true\n    CancelOperationRequest:\n      type: object\n      additionalProperties: false\n      properties:\n        reason: { type: string }\n    CapabilityContractPin:\n      $ref: \"../plugin/host-capability-pin-v1.schema.json\"\n    PublicOperationBinding:\n      type: object\n      description: Public immutable execution evidence embedded into operation responses. Session and bridge channel ownership fields are excluded.\n      required:\n        - invocation_id\n        - audit_correlation_id\n        - publisher_id\n        - plugin_id\n        - plugin_instance_id\n        - plugin_version\n        - active_fingerprint\n        - route_kind\n        - capability_id\n        - capability_version\n        - binding_id\n        - method\n        - target_method\n        - effect\n        - execution\n        - permissions\n        - confirmation\n        - revision\n        - quota\n        - target\n        - target_descriptor_sha256\n      properties:\n        invocation_id: { type: string, minLength: 1 }\n        audit_correlation_id: { type: string, minLength: 1 }\n        operation_id: { type: string, minLength: 1 }\n        stream_id: { type: string, minLength: 1 }\n        publisher_id: { type: string, minLength: 1 }\n        plugin_id: { type: string, minLength: 1 }\n        plugin_instance_id: { type: string, minLength: 1 }\n        plugin_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        active_fingerprint: { type: string, minLength: 1 }\n        surface_instance_id: { type: string }\n        route_kind: { type: string, enum: [capability, worker, core_action] }\n        capability_id: { type: string, minLength: 1 }\n        capability_version: { $ref: \"#/components/schemas/StrictSemVer\" }\n        binding_id: { type: string, minLength: 1 }\n        contract:\n          $ref: \"#/components/schemas/CapabilityContractPin\"\n        method: { type: string, minLength: 1 }\n        target_method: { type: string, minLength: 1 }\n        effect: { type: string, enum: [read, write, execute, delete, admin] }\n        execution: { type: string, enum: [sync, operation, subscription] }\n        permissions:\n          type: object\n          additionalProperties: false\n          required: [required, granted]\n          properties:\n            required: { type: array, items: { type: string } }\n            granted: { type: array, items: { type: string } }\n        confirmation:\n          type: object\n          additionalProperties: false\n          required: [required, confirmed]\n          properties:\n            required: { type: boolean }\n            confirmed: { type: boolean }\n            confirmation_id: { type: string }\n            request_sha256: { type: string }\n            plan_sha256: { type: string }\n            target_sha256: { type: string }\n        revision:\n          type: object\n          additionalProperties: false\n          required: [policy_revision, management_revision, revoke_epoch]\n          properties:\n            policy_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n            management_revision: { type: integer, minimum: 0, maximum: 9007199254740991 }\n            revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        quota:\n          type: object\n          additionalProperties: false\n          properties:\n            max_concurrent: { type: integer, minimum: 0, maximum: 9007199254740991 }\n            max_duration_ms: { type: integer, minimum: 0, maximum: 9007199254740991 }\n            max_stream_bytes: { type: integer, minimum: 0, maximum: 9007199254740991 }\n            expires_at: { type: string, format: date-time }\n        target:\n          type: object\n          additionalProperties: false\n          required: [kind, fields]\n          properties:\n            kind: { type: string, minLength: 1 }\n            fields: { type: object, additionalProperties: true }\n        target_descriptor_sha256: { type: string, pattern: '^sha256:[0-9a-f]{64}$' }\n        stream_event_type_name: { type: string, minLength: 1 }\n        stream_event_schema_sha256: { type: string, pattern: '^[0-9a-f]{64}$' }\n      oneOf:\n        - required: [route_kind, contract]\n          properties:\n            route_kind: { const: capability }\n        - required: [route_kind]\n          properties:\n            route_kind: { const: worker }\n          not:\n            required: [contract]\n        - required: [route_kind]\n          properties:\n            route_kind: { const: core_action }\n          not:\n            required: [contract]\n    OperationRecord:\n      allOf:\n        - $ref: \"#/components/schemas/PublicOperationBinding\"\n        - type: object\n          required:\n            - operation_id\n            - cancelable\n            - created_at\n            - updated_at\n          properties:\n            operation_id: { type: string, minLength: 1 }\n            execution: { type: string, enum: [operation, subscription] }\n            cancelable: { type: boolean }\n            cancel_ack_timeout_ms: { type: integer, minimum: 0 }\n            disable_behavior: { type: string, enum: [cancel, orphan, wait] }\n            uninstall_behavior: { type: string, enum: [cancel_then_block_delete, force_cleanup_allowed] }\n            created_at: { type: string, format: date-time }\n            updated_at: { type: string, format: date-time }\n            cancel_requested_at: { type: string, format: date-time }\n            orphaned_at: { type: string, format: date-time }\n            terminal_at: { type: string, format: date-time }\n          oneOf:\n            - type: object\n              required: [status, failure_code, reason]\n              properties:\n                status: { const: failed }\n                failure_code: { $ref: \"#/components/schemas/ExecutionFailureCode\" }\n                reason: { const: \"execution failed\" }\n            - type: object\n              required: [status]\n              properties:\n                status:\n                  enum: [running, cancel_requested, canceled, completed, orphaned_after_disable, orphaned_after_uninstall]\n                reason: { type: string }\n              not:\n                required: [failure_code]\n      unevaluatedProperties: false\n    ExecutionFailureCode:\n      type: string\n      enum: [adapter_failed, contract_invalid, platform_failed, quota_exceeded, runtime_failed]\n    StartRuntimeRequest:\n      type: object\n      required: [target]\n      additionalProperties: false\n      properties:\n        target: { $ref: \"#/components/schemas/RuntimeTarget\" }\n    ExportDataRequest:\n      type: object\n      required: [plugin_instance_id]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n    DeleteDataExportRequest:\n      type: object\n      required: [plugin_instance_id, bundle_ref]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        bundle_ref: { type: string, minLength: 1 }\n    ImportDataRequest:\n      type: object\n      required: [plugin_instance_id, bundle_ref, expected_management_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        bundle_ref: { type: string, minLength: 1 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    PluginDataBinding:\n      type: object\n      required: [plugin_instance_id, generation_id, state, revision, shape_hash]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        generation_id: { type: string, minLength: 1 }\n        state: { type: string, enum: [active, retained] }\n        revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        shape_hash: { type: string, pattern: \"^[0-9a-f]{64}$\" }\n        retained_at: { type: string, format: date-time }\n        expires_at: { type: string, format: date-time }\n    RetainedDataList:\n      type: object\n      required: [retained_data]\n      additionalProperties: false\n      properties:\n        retained_data:\n          type: array\n          items:\n            $ref: \"#/components/schemas/PluginDataBinding\"\n    RetainedDataCleanupResult:\n      type: object\n      required: [deleted]\n      additionalProperties: false\n      properties:\n        deleted:\n          type: array\n          items:\n            $ref: \"#/components/schemas/PluginDataBinding\"\n    DeleteRetainedDataRequest:\n      type: object\n      required: [plugin_instance_id, expected_binding_revision]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        expected_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    BindRetainedDataRequest:\n      type: object\n      required: [source_plugin_instance_id, expected_source_binding_revision, target_plugin_instance_id, target_expected_management_revision]\n      additionalProperties: false\n      properties:\n        source_plugin_instance_id: { type: string, minLength: 1 }\n        expected_source_binding_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        target_plugin_instance_id: { type: string, minLength: 1 }\n        target_expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n    CleanupExpiredRetainedDataRequest:\n      type: object\n      additionalProperties: false\n    GrantPermissionRequest:\n      type: object\n      required: [plugin_instance_id, permission_id, expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        permission_id: { type: string, minLength: 1 }\n        expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        expires_at: { type: string, format: date-time }\n    RevokePermissionRequest:\n      type: object\n      required: [plugin_instance_id, permission_id, expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        permission_id: { type: string, minLength: 1 }\n        expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        reason: { type: string }\n    PutSecurityPolicyRequest:\n      type: object\n      required: [expected_policy_revision, expected_management_revision, expected_revoke_epoch, allowed_permissions, denied_methods]\n      additionalProperties: false\n      properties:\n        expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n        allowed_permissions:\n          type: array\n          uniqueItems: true\n          items: { type: string, minLength: 1 }\n        denied_methods:\n          type: array\n          uniqueItems: true\n          items: { type: string, minLength: 1 }\n    DeleteSecurityPolicyRequest:\n      type: object\n      required: [expected_policy_revision, expected_management_revision, expected_revoke_epoch]\n      additionalProperties: false\n      properties:\n        expected_policy_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_management_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        expected_revoke_epoch: { type: integer, minimum: 0, maximum: 9007199254740991 }\n    SecretRefRequest:\n      type: object\n      required: [plugin_instance_id, secret_ref, scope]\n      additionalProperties: false\n      properties:\n        plugin_instance_id: { type: string, minLength: 1 }\n        secret_ref: { type: string, minLength: 1 }\n        scope: { type: string, enum: [user, environment] }\n    ResourceScopeKind:\n      type: string\n      enum: [user, environment]\n    PatchSettingsRequest:\n      type: object\n      required: [scope, expected_values_revision]\n      additionalProperties: false\n      minProperties: 3\n      properties:\n        scope: { $ref: \"#/components/schemas/ResourceScopeKind\" }\n        expected_values_revision: { type: integer, minimum: 1, maximum: 9007199254740991 }\n        set:\n          type: object\n          minProperties: 1\n          additionalProperties: true\n        remove:\n          type: array\n          minItems: 1\n          uniqueItems: true\n          items: { type: string, minLength: 1 }\n".as_bytes();
static CONTRACT_BODY_PROCESS_CONTAINMENT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/process-containment-v1.schema.json\",\n  \"title\": \"ReDevPlugin runtime process containment evidence v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"profile\", \"seccomp_policy_sha256\", \"no_new_privs\", \"seccomp_tsync\", \"process_creation_denied\", \"reexec_denied\", \"active\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.process_containment.v1\"},\n    \"profile\": {\"const\": \"linux-runtime-v1\"},\n    \"seccomp_policy_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"no_new_privs\": {\"const\": true},\n    \"seccomp_tsync\": {\"const\": true},\n    \"process_creation_denied\": {\"const\": true},\n    \"reexec_denied\": {\"const\": true},\n    \"active\": {\"const\": true}\n  }\n}\n".as_bytes();
static CONTRACT_BODY_QUARANTINE_CLEANUP_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/quarantine-cleanup-v1.schema.json\",\n  \"title\": \"ReDevPlugin quarantine cleanup journal v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"migration_id\",\n    \"root_identity_sha256\",\n    \"quarantine_id\",\n    \"quarantine_sha256\",\n    \"state\",\n    \"entries\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"quarantine-cleanup-v1\" },\n    \"migration_id\": { \"type\": \"string\", \"pattern\": \"^migration_[0-9a-f]{32}$\" },\n    \"root_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"quarantine_id\": { \"type\": \"string\", \"pattern\": \"^quarantine_[0-9a-f]{32}$\" },\n    \"quarantine_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"state\": { \"enum\": [\"delete_prepared\", \"deleting\", \"delete_reconcile_required\", \"deleted\"] },\n    \"entries\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 200000,\n      \"items\": { \"$ref\": \"#/$defs/entry\" }\n    }\n  },\n  \"$defs\": {\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"entry\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"path\", \"kind\", \"device\", \"inode\", \"uid\", \"mode\", \"size\", \"nlink\", \"sha256\"],\n      \"properties\": {\n        \"path\": {\n          \"type\": \"string\",\n          \"minLength\": 1,\n          \"maxLength\": 4096,\n          \"pattern\": \"^[^/\\\\\\\\]+(?:/[^/\\\\\\\\]+)*$\",\n          \"not\": { \"pattern\": \"(^|/)\\\\.\\\\.?($|/)\" }\n        },\n        \"kind\": { \"enum\": [\"directory\", \"file\"] },\n        \"device\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 18446744073709551615 },\n        \"inode\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 18446744073709551615 },\n        \"uid\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967295 },\n        \"mode\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4095 },\n        \"size\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 4294967296 },\n        \"nlink\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 1 },\n        \"sha256\": { \"type\": \"string\", \"pattern\": \"^$|^[0-9a-f]{64}$\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_METADATA_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-metadata-v5.schema.json\",\n  \"title\": \"ReDevPlugin signed plugin release metadata v5\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"source_id\",\n    \"release_metadata_ref\",\n    \"publisher_id\",\n    \"plugin_id\",\n    \"version\",\n    \"distribution_ref\",\n    \"hashes\",\n    \"release_metadata_signature\",\n    \"package_signature\",\n    \"compatibility\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_metadata.v5\" },\n    \"source_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"release_metadata_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"publisher_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"version\": { \"$ref\": \"#/$defs/semver\" },\n    \"distribution_ref\": { \"$ref\": \"#/$defs/distribution_ref\" },\n    \"hashes\": { \"$ref\": \"#/$defs/package_hash_set\" },\n    \"release_metadata_signature\": { \"$ref\": \"#/$defs/release_metadata_signature\" },\n    \"package_signature\": { \"$ref\": \"#/$defs/package_release_signature\" },\n    \"compatibility\": { \"$ref\": \"#/$defs/release_compatibility\" },\n    \"host_requirements\": {\n      \"type\": \"array\",\n      \"items\": { \"$ref\": \"#/$defs/host_requirement\" }\n    },\n    \"release_evidence\": { \"$ref\": \"#/$defs/release_evidence\" },\n    \"metadata\": {\n      \"type\": \"object\",\n      \"additionalProperties\": { \"type\": \"string\" }\n    }\n  },\n  \"$defs\": {\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"pattern\": \"^[A-Za-z0-9._/@+-]+$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"^/\" },\n          { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n          { \"pattern\": \"\\\\\\\\\" },\n          { \"pattern\": \"[?#]\" }\n        ]\n      }\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(sha256:)?[a-f0-9]{64}$\"\n    },\n    \"distribution_ref\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"distribution\", \"artifact_ref\"],\n      \"properties\": {\n        \"distribution\": { \"enum\": [\"registry_ref\", \"host_artifact_ref\"] },\n        \"artifact_ref\": { \"$ref\": \"#/$defs/artifact_ref\" }\n      }\n    },\n    \"package_hash_set\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"package_sha256\", \"manifest_sha256\", \"entries_sha256\"],\n      \"properties\": {\n        \"package_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"manifest_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"entries_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    },\n    \"release_metadata_signature\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"algorithm\", \"key_id\", \"signature_ref\", \"source_policy_epoch\", \"revocation_epoch\"],\n      \"properties\": {\n        \"algorithm\": { \"enum\": [\"ed25519\"] },\n        \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"signature_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n        \"source_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n        \"revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" }\n      }\n    },\n    \"package_release_signature\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"algorithm\", \"key_id\", \"signature_bundle_ref\", \"source_policy_epoch\", \"revocation_epoch\"],\n      \"properties\": {\n        \"algorithm\": { \"enum\": [\"ed25519\"] },\n        \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"signature_bundle_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n        \"source_policy_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" },\n        \"revocation_epoch\": { \"$ref\": \"#/$defs/decimal_epoch\" }\n      }\n    },\n    \"release_compatibility\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"min_redevplugin_version\", \"min_runtime_version\", \"ui_protocol_version\"],\n      \"properties\": {\n        \"min_redevplugin_version\": { \"$ref\": \"#/$defs/semver\" },\n        \"min_runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n        \"ui_protocol_version\": { \"const\": \"plugin-ui-v5\" },\n        \"supported_targets\": {\n          \"type\": \"array\",\n          \"uniqueItems\": true,\n          \"items\": { \"enum\": [\"darwin/amd64\", \"darwin/arm64\", \"linux/amd64\", \"linux/arm64\"] }\n        }\n      }\n    },\n    \"host_requirement\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"host_id\"],\n      \"properties\": {\n        \"host_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"min_host_version\": { \"$ref\": \"#/$defs/semver\" },\n        \"required_capability_contracts\": {\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/$defs/host_capability_requirement\" }\n        }\n      }\n    },\n    \"host_capability_requirement\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"capability_id\",\n        \"capability_version\",\n        \"contract\"\n      ],\n      \"properties\": {\n        \"capability_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"capability_version\": { \"$ref\": \"#/$defs/semver\" },\n        \"contract\": { \"$ref\": \"#/$defs/host_capability_contract_ref\" }\n      }\n    },\n    \"host_capability_contract_ref\": {\n      \"$ref\": \"host-capability-pin-v1.schema.json\"\n    },\n    \"release_evidence\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"notices_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"provenance_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"generated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n      }\n    },\n    \"decimal_epoch\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)$\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_REVOCATION_POINTER_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-revocation-pointer-v1.schema.json\",\n  \"title\": \"ReDevPlugin release revocation pointer v1\",\n  \"$ref\": \"#/$defs/pointer\",\n  \"$defs\": {\n    \"pointer\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"schema_version\",\n        \"source_id\",\n        \"channel\",\n        \"epoch\",\n        \"previous_epoch\",\n        \"previous_document_sha256\",\n        \"ref\",\n        \"document_sha256\",\n        \"generated_at\",\n        \"expires_at\",\n        \"key_id\",\n        \"signature\"\n      ],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_revocation_pointer.v1\" },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n        \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n        \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n        \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n        \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"signature\": { \"$ref\": \"#/$defs/signature\" }\n      }\n    },\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"^/\" },\n          { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n          { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n          { \"pattern\": \"\\\\\\\\\" },\n          { \"pattern\": \"[?#]\" }\n        ]\n      }\n    },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"canonical_time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n    },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_REVOCATION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-revocation-v2.schema.json\",\n  \"title\": \"ReDevPlugin release revocation v2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"source_id\",\n    \"channel\",\n    \"epoch\",\n    \"previous_epoch\",\n    \"previous_document_sha256\",\n    \"root_epoch\",\n    \"generated_at\",\n    \"expires_at\",\n    \"revoked_key_ids\",\n    \"revoked_releases\",\n    \"key_id\",\n    \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_revocation.v2\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"channel\": { \"$ref\": \"#/$defs/id\" },\n    \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n    \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n    \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n    \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"revoked_key_ids\": {\n      \"type\": \"array\",\n      \"maxItems\": 4096,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/id\" }\n    },\n    \"revoked_releases\": {\n      \"type\": \"array\",\n      \"maxItems\": 16384,\n      \"items\": { \"$ref\": \"#/$defs/revoked_release\" }\n    },\n    \"key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature\": { \"$ref\": \"#/$defs/signature\" }\n  },\n  \"$defs\": {\n    \"revoked_release\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"publisher_id\",\n        \"plugin_id\",\n        \"version\",\n        \"release_metadata_sha256\",\n        \"revoked_at\"\n      ],\n      \"properties\": {\n        \"publisher_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n        \"plugin_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n        \"version\": { \"$ref\": \"#/$defs/semver\" },\n        \"release_metadata_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"revoked_at\": { \"$ref\": \"#/$defs/canonical_time\" }\n      }\n    },\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"legacy_id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n    },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"canonical_time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n    },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_ROOT_DELEGATION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-root-delegation-v1.schema.json\",\n  \"title\": \"ReDevPlugin release root delegation v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"source_id\",\n    \"root_epoch\",\n    \"previous_root_epoch\",\n    \"previous_delegation_sha256\",\n    \"generated_at\",\n    \"expires_at\",\n    \"delegated_keys\",\n    \"key_id\",\n    \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_root_delegation.v1\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n    \"previous_root_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n    \"previous_delegation_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"delegated_keys\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 32,\n      \"items\": { \"$ref\": \"#/$defs/delegated_key\" }\n    },\n    \"key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature\": { \"$ref\": \"#/$defs/signature\" }\n  },\n  \"$defs\": {\n    \"delegated_key\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"algorithm\",\n        \"key_id\",\n        \"public_key\",\n        \"usages\",\n        \"channels\",\n        \"valid_from\",\n        \"valid_until\"\n      ],\n      \"properties\": {\n        \"algorithm\": { \"const\": \"ed25519\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"public_key\": { \"$ref\": \"#/$defs/public_key\" },\n        \"usages\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 9,\n          \"uniqueItems\": true,\n          \"items\": {\n            \"enum\": [\n              \"package\",\n              \"release_metadata\",\n              \"host_capability_contract\",\n              \"source_policy_document\",\n              \"source_policy_pointer\",\n              \"revocation_document\",\n              \"revocation_pointer\",\n              \"signing_ledger\",\n              \"trusted_time\"\n            ]\n          }\n        },\n        \"channels\": {\n          \"type\": \"array\",\n          \"minItems\": 0,\n          \"maxItems\": 16,\n          \"uniqueItems\": true,\n          \"items\": { \"$ref\": \"#/$defs/id\" }\n        },\n        \"valid_from\": { \"$ref\": \"#/$defs/canonical_time\" },\n        \"valid_until\": { \"$ref\": \"#/$defs/canonical_time\" }\n      },\n      \"allOf\": [\n        {\n          \"if\": {\n            \"properties\": {\n              \"usages\": { \"contains\": { \"enum\": [\"signing_ledger\", \"trusted_time\"] } }\n            },\n            \"required\": [\"usages\"]\n          },\n          \"then\": {\n            \"properties\": {\n              \"usages\": { \"items\": { \"enum\": [\"signing_ledger\", \"trusted_time\"] } },\n              \"channels\": { \"maxItems\": 0 }\n            }\n          },\n          \"else\": {\n            \"properties\": {\n              \"channels\": { \"minItems\": 1 },\n              \"usages\": {\n                \"items\": {\n                  \"enum\": [\n                    \"package\", \"release_metadata\", \"host_capability_contract\", \"source_policy_document\", \"source_policy_pointer\",\n                    \"revocation_document\", \"revocation_pointer\"\n                  ]\n                }\n              }\n            }\n          }\n        }\n      ]\n    },\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"canonical_time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n    },\n    \"public_key\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{43}=$\" },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SIGNATURE_ENVELOPE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signature-envelope-v1.schema.json\",\n  \"title\": \"ReDevPlugin release signature envelope v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n    \"algorithm\", \"key_id\", \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_signature_envelope.v1\" },\n    \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"algorithm\": { \"const\": \"ed25519\" },\n    \"key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-evidence-v1.schema.json\",\n  \"title\": \"ReDevPlugin release signing ledger evidence v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"source_id\",\n    \"subject_identity_sha256\",\n    \"signing_preimage_sha256\",\n    \"signature_envelope_sha256\",\n    \"receipt_ref\",\n    \"receipt_sha256\",\n    \"checkpoint_ref\",\n    \"checkpoint_sha256\",\n    \"inclusion_proof_ref\",\n    \"inclusion_proof_sha256\",\n    \"latest_proof_ref\",\n    \"latest_proof_sha256\"\n  ],\n  \"dependentRequired\": {\n    \"consistency_proof_ref\": [\"consistency_proof_sha256\"],\n    \"consistency_proof_sha256\": [\"consistency_proof_ref\"]\n  },\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_evidence.v1\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"channel\": { \"$ref\": \"#/$defs/id\" },\n    \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"receipt_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"receipt_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"checkpoint_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"inclusion_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"inclusion_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"latest_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"latest_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"consistency_proof_ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n    \"consistency_proof_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n  },\n  \"$defs\": {\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"^/\" },\n          { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n          { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n          { \"pattern\": \"\\\\\\\\\" },\n          { \"pattern\": \"[?#]\" }\n        ]\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-receipt-v1.schema.json\",\n  \"title\": \"ReDevPlugin release signing ledger receipt v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\", \"log_id\", \"source_id\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n    \"signature_envelope_sha256\", \"sequence\", \"leaf_index\", \"tree_size\", \"log_root_hash\",\n    \"latest_map_root_hash\", \"checkpoint_sha256\", \"checkpoint_time\", \"key_id\", \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_receipt.v1\" },\n    \"log_id\": { \"$ref\": \"#/$defs/id\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"channel\": { \"$ref\": \"#/$defs/id\" },\n    \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n    \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n    \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n    \"log_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"latest_map_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n    \"key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SIGNING_LEDGER_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-v1.schema.json\",\n  \"title\": \"ReDevPlugin release signing ledger v1\",\n  \"oneOf\": [\n    { \"$ref\": \"#/$defs/entry\" },\n    { \"$ref\": \"#/$defs/log_leaf\" },\n    { \"$ref\": \"#/$defs/checkpoint\" },\n    { \"$ref\": \"#/$defs/inclusion_proof\" },\n    { \"$ref\": \"#/$defs/latest_proof\" },\n    { \"$ref\": \"#/$defs/consistency_proof\" }\n  ],\n  \"$defs\": {\n\t\"log_leaf\": {\n\t  \"type\": \"object\",\n\t  \"additionalProperties\": false,\n\t  \"required\": [\n\t\t\"schema_version\", \"source_id\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n\t\t\"signature_envelope_sha256\", \"sequence\"\n\t  ],\n\t  \"properties\": {\n\t\t\"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_log_leaf.v1\" },\n\t\t\"source_id\": { \"$ref\": \"#/$defs/id\" },\n\t\t\"channel\": { \"$ref\": \"#/$defs/id\" },\n\t\t\"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n\t  }\n\t},\n    \"entry\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"schema_version\", \"state\", \"subject\", \"subject_identity_sha256\", \"signing_preimage_sha256\",\n        \"algorithm\", \"key_id\", \"revision\", \"reserved_at\"\n      ],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger_entry.v1\" },\n        \"state\": { \"enum\": [\"reserved\", \"finalized\", \"terminal_failed\"] },\n        \"subject\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signing-subject-v1.schema.json\" },\n        \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"algorithm\": { \"const\": \"ed25519\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"revision\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"reserved_at\": { \"$ref\": \"#/$defs/time\" },\n        \"signature_envelope\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signature-envelope-v1.schema.json\" },\n        \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"finalized_at\": { \"$ref\": \"#/$defs/time\" },\n        \"failure_code\": { \"enum\": [\"signer_rejected\", \"subject_conflict\", \"ledger_rejected\"] },\n        \"failed_at\": { \"$ref\": \"#/$defs/time\" }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"properties\": { \"state\": { \"const\": \"reserved\" } }, \"required\": [\"state\"] },\n          \"then\": {\n            \"not\": {\n              \"anyOf\": [\n                { \"required\": [\"signature_envelope\"] }, { \"required\": [\"signature_envelope_sha256\"] },\n                { \"required\": [\"finalized_at\"] }, { \"required\": [\"failure_code\"] }, { \"required\": [\"failed_at\"] }\n              ]\n            }\n          }\n        },\n        {\n          \"if\": { \"properties\": { \"state\": { \"const\": \"finalized\" } }, \"required\": [\"state\"] },\n          \"then\": { \"required\": [\"signature_envelope\", \"signature_envelope_sha256\", \"finalized_at\"] },\n          \"else\": {\n            \"not\": {\n              \"anyOf\": [\n                { \"required\": [\"signature_envelope\"] }, { \"required\": [\"signature_envelope_sha256\"] },\n                { \"required\": [\"finalized_at\"] }\n              ]\n            }\n          }\n        },\n        {\n          \"if\": { \"properties\": { \"state\": { \"const\": \"terminal_failed\" } }, \"required\": [\"state\"] },\n          \"then\": { \"required\": [\"failure_code\", \"failed_at\"] },\n          \"else\": {\n            \"not\": { \"anyOf\": [{ \"required\": [\"failure_code\"] }, { \"required\": [\"failed_at\"] }] }\n          }\n        }\n      ]\n    },\n    \"checkpoint\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"schema_version\", \"kind\", \"log_id\", \"tree_size\", \"log_root_hash\", \"latest_map_root_hash\",\n        \"checkpoint_time\", \"key_id\", \"signature\"\n      ],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n        \"kind\": { \"const\": \"checkpoint\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n        \"log_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"latest_map_root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"signature\": { \"$ref\": \"#/$defs/signature\" }\n      }\n    },\n    \"inclusion_proof\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"kind\", \"log_id\", \"leaf_index\", \"tree_size\", \"nodes\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n        \"kind\": { \"const\": \"inclusion_proof\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n        \"tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n        \"nodes\": { \"$ref\": \"#/$defs/log_proof\" }\n      }\n    },\n    \"latest_proof\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"kind\", \"log_id\", \"subject_identity_sha256\", \"present\", \"siblings\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n        \"kind\": { \"const\": \"latest_proof\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"subject_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"present\": { \"type\": \"boolean\" },\n        \"sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"signing_preimage_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"signature_envelope_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"siblings\": {\n          \"type\": \"array\", \"minItems\": 256, \"maxItems\": 256,\n          \"items\": { \"$ref\": \"#/$defs/sha256\" }\n        }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"properties\": { \"present\": { \"const\": true } }, \"required\": [\"present\"] },\n          \"then\": { \"required\": [\"sequence\", \"signing_preimage_sha256\", \"signature_envelope_sha256\"] },\n          \"else\": {\n            \"not\": {\n              \"anyOf\": [\n                { \"required\": [\"sequence\"] },\n                { \"required\": [\"signing_preimage_sha256\"] },\n                { \"required\": [\"signature_envelope_sha256\"] }\n              ]\n            }\n          }\n        }\n      ]\n    },\n    \"consistency_proof\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"kind\", \"log_id\", \"old_tree_size\", \"new_tree_size\", \"nodes\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_ledger.v1\" },\n        \"kind\": { \"const\": \"consistency_proof\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"old_tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n        \"new_tree_size\": { \"$ref\": \"#/$defs/tree_size\" },\n        \"nodes\": { \"$ref\": \"#/$defs/log_proof\" }\n      }\n    },\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n    \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\" },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" },\n    \"log_proof\": {\n      \"type\": \"array\", \"maxItems\": 64,\n      \"items\": { \"$ref\": \"#/$defs/sha256\" }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SIGNING_SUBJECT_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-signing-subject-v1.schema.json\",\n  \"title\": \"ReDevPlugin release signing subject v1\",\n  \"oneOf\": [\n    { \"$ref\": \"#/$defs/root_subject\" },\n    { \"$ref\": \"#/$defs/release_subject\" },\n    { \"$ref\": \"#/$defs/epoch_subject\" }\n  ],\n  \"$defs\": {\n    \"root_subject\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"usage\", \"source_id\", \"root_epoch\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n        \"usage\": { \"const\": \"root_delegation\" },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" }\n      }\n    },\n    \"release_subject\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"schema_version\", \"usage\", \"source_id\", \"channel\", \"publisher_id\",\n        \"plugin_id\", \"version\", \"artifact_or_metadata_identity_sha256\"\n      ],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n        \"usage\": { \"enum\": [\"package\", \"release_metadata\"] },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"publisher_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n        \"plugin_id\": { \"$ref\": \"#/$defs/legacy_id\" },\n        \"version\": { \"$ref\": \"#/$defs/semver\" },\n        \"artifact_or_metadata_identity_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    },\n    \"epoch_subject\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"usage\", \"source_id\", \"channel\", \"epoch\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_signing_subject.v1\" },\n        \"usage\": {\n          \"enum\": [\"source_policy_document\", \"source_policy_pointer\", \"revocation_document\", \"revocation_pointer\"]\n        },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" }\n      }\n    },\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"legacy_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SOURCE_POLICY_POINTER_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-source-policy-pointer-v1.schema.json\",\n  \"title\": \"ReDevPlugin release source policy pointer v1\",\n  \"$ref\": \"#/$defs/pointer\",\n  \"$defs\": {\n    \"pointer\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"schema_version\",\n        \"source_id\",\n        \"channel\",\n        \"epoch\",\n        \"previous_epoch\",\n        \"previous_document_sha256\",\n        \"ref\",\n        \"document_sha256\",\n        \"generated_at\",\n        \"expires_at\",\n        \"key_id\",\n        \"signature\"\n      ],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.release_source_policy_pointer.v1\" },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n        \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n        \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"ref\": { \"$ref\": \"#/$defs/artifact_ref\" },\n        \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n        \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"signature\": { \"$ref\": \"#/$defs/signature\" }\n      }\n    },\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"artifact_ref\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^[A-Za-z0-9._@+-]+(?:/[A-Za-z0-9._@+-]+)*$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"^/\" },\n          { \"pattern\": \"(^|/)\\\\.(/|$)\" },\n          { \"pattern\": \"(^|/)\\\\.\\\\.(/|$)\" },\n          { \"pattern\": \"\\\\\\\\\" },\n          { \"pattern\": \"[?#]\" }\n        ]\n      }\n    },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"canonical_time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n    },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_SOURCE_POLICY_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-source-policy-v2.schema.json\",\n  \"title\": \"ReDevPlugin release source policy v2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"source_id\",\n    \"channel\",\n    \"epoch\",\n    \"previous_epoch\",\n    \"previous_document_sha256\",\n    \"root_epoch\",\n    \"source_type\",\n    \"source_class\",\n    \"allowed_publishers\",\n    \"allowed_artifact_hosts\",\n    \"active_keys\",\n    \"capability_publisher_scopes\",\n    \"require_signature\",\n    \"install_policy\",\n    \"unsigned_policy\",\n    \"downgrade_policy\",\n    \"minimum_revocation_epoch\",\n    \"limits\",\n    \"generated_at\",\n    \"expires_at\",\n    \"key_id\",\n    \"signature\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_source_policy.v2\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"channel\": { \"$ref\": \"#/$defs/id\" },\n    \"epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n    \"previous_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n    \"previous_document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"root_epoch\": { \"$ref\": \"#/$defs/positive_epoch\" },\n    \"source_type\": { \"enum\": [\"registry\", \"host_artifact\"] },\n    \"source_class\": { \"enum\": [\"official\", \"curated\", \"community\", \"private\"] },\n    \"allowed_publishers\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 1024,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/id\" }\n    },\n    \"allowed_artifact_hosts\": {\n      \"type\": \"array\",\n      \"maxItems\": 1024,\n      \"uniqueItems\": true,\n      \"items\": {\n        \"type\": \"string\",\n        \"minLength\": 1,\n        \"maxLength\": 253,\n        \"pattern\": \"^[a-z0-9](?:[a-z0-9.-]*[a-z0-9])?$\"\n      }\n    },\n    \"active_keys\": { \"$ref\": \"#/$defs/active_keys\" },\n    \"capability_publisher_scopes\": { \"$ref\": \"#/$defs/capability_publisher_scopes\" },\n    \"require_signature\": { \"type\": \"boolean\" },\n    \"install_policy\": { \"enum\": [\"allow\", \"review_required\", \"block\"] },\n    \"unsigned_policy\": { \"enum\": [\"dev_only\", \"review_required\", \"block\"] },\n    \"downgrade_policy\": { \"enum\": [\"review_required\", \"block\"] },\n    \"minimum_revocation_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n    \"limits\": { \"$ref\": \"#/$defs/limits\" },\n    \"generated_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"expires_at\": { \"$ref\": \"#/$defs/canonical_time\" },\n    \"key_id\": { \"$ref\": \"#/$defs/id\" },\n    \"signature\": { \"$ref\": \"#/$defs/signature\" }\n  },\n  \"$defs\": {\n    \"active_keys\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"package\",\n        \"release_metadata\",\n        \"host_capability_contract\",\n        \"source_policy_pointer\",\n        \"revocation_document\",\n        \"revocation_pointer\"\n      ],\n      \"properties\": {\n        \"package\": { \"$ref\": \"#/$defs/key_ids\" },\n        \"release_metadata\": { \"$ref\": \"#/$defs/key_ids\" },\n        \"host_capability_contract\": { \"$ref\": \"#/$defs/optional_key_ids\" },\n        \"source_policy_pointer\": { \"$ref\": \"#/$defs/key_ids\" },\n        \"revocation_document\": { \"$ref\": \"#/$defs/key_ids\" },\n        \"revocation_pointer\": { \"$ref\": \"#/$defs/key_ids\" }\n      }\n    },\n    \"key_ids\": {\n      \"type\": \"array\",\n      \"minItems\": 1,\n      \"maxItems\": 16,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/id\" }\n    },\n    \"optional_key_ids\": {\n      \"type\": \"array\",\n      \"maxItems\": 16,\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/id\" }\n    },\n    \"capability_publisher_scopes\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/capability_publisher_scope\" }\n    },\n    \"capability_publisher_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"key_id\", \"allowed_publishers\"],\n      \"properties\": {\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"allowed_publishers\": {\n          \"type\": \"array\",\n          \"minItems\": 1,\n          \"maxItems\": 1024,\n          \"uniqueItems\": true,\n          \"items\": { \"$ref\": \"#/$defs/legacy_id\" }\n        }\n      }\n    },\n    \"limits\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"document_max_lifetime_seconds\",\n        \"future_skew_seconds\",\n        \"activation_lease_max_seconds\",\n        \"refresh_interval_max_seconds\",\n        \"failure_teardown_deadline_seconds\"\n      ],\n      \"properties\": {\n        \"document_max_lifetime_seconds\": { \"const\": 86400 },\n        \"future_skew_seconds\": { \"const\": 300 },\n        \"activation_lease_max_seconds\": { \"const\": 300 },\n        \"refresh_interval_max_seconds\": { \"const\": 60 },\n        \"failure_teardown_deadline_seconds\": { \"const\": 30 }\n      }\n    },\n    \"id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[a-z][a-z0-9._-]*$\"\n    },\n    \"legacy_id\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 128,\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._-]*$\"\n    },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)$\" },\n    \"positive_epoch\": { \"type\": \"string\", \"pattern\": \"^[1-9][0-9]*$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"canonical_time\": {\n      \"type\": \"string\",\n      \"format\": \"date-time\",\n      \"pattern\": \"^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$\"\n    },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RELEASE_TRUST_STATE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/release-trust-state-v1.schema.json\",\n  \"title\": \"ReDevPlugin release trust state v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"source_id\", \"revision\", \"external_counter\", \"trusted_time\", \"channels\"],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.release_trust_state.v1\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"revision\": { \"$ref\": \"#/$defs/revision\" },\n    \"external_counter\": { \"$ref\": \"#/$defs/counter\" },\n    \"root\": { \"$ref\": \"#/$defs/root_head\" },\n    \"trusted_time\": { \"$ref\": \"#/$defs/trusted_time\" },\n\t\"signing_ledger\": { \"$ref\": \"#/$defs/signing_ledger\" },\n    \"channels\": {\n      \"type\": \"array\",\n      \"maxItems\": 16,\n      \"items\": { \"$ref\": \"#/$defs/channel\" }\n    }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"counter\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n    \"revision\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n    \"epoch\": { \"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]{0,19})$\" },\n    \"time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n    \"locator\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"maxLength\": 1024,\n      \"pattern\": \"^(?:[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{2}[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{3,}[A-Za-z0-9._@+-]*)(?:/(?:[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{2}[A-Za-z0-9_@+-][A-Za-z0-9._@+-]*|\\\\.{3,}[A-Za-z0-9._@+-]*))*$\"\n    },\n    \"transport_token\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 512, \"pattern\": \"^[A-Za-z0-9._:@+-]+$\" },\n    \"root_head\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"epoch\", \"document_sha256\", \"generated_at\", \"expires_at\", \"key_id\"],\n      \"properties\": {\n        \"epoch\": { \"$ref\": \"#/$defs/epoch\" },\n        \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"generated_at\": { \"$ref\": \"#/$defs/time\" },\n        \"expires_at\": { \"$ref\": \"#/$defs/time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" }\n      }\n    },\n    \"checkpoint\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"log_id\", \"tree_size\", \"root_hash\", \"checkpoint_time\", \"key_id\", \"signature\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.trusted_time_checkpoint.v1\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"checkpoint_time\": { \"$ref\": \"#/$defs/time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" }\n      }\n    },\n    \"trusted_time\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"floor\", \"checkpoint_sha256\", \"checkpoint\"],\n      \"properties\": {\n        \"floor\": { \"$ref\": \"#/$defs/time\" },\n        \"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"checkpoint\": { \"$ref\": \"#/$defs/checkpoint\" }\n      }\n    },\n\t\"signing_ledger\": {\n\t  \"type\": \"object\",\n\t  \"additionalProperties\": false,\n\t  \"required\": [\"checkpoint_sha256\", \"checkpoint\"],\n\t  \"properties\": {\n\t\t\"checkpoint_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n\t\t\"checkpoint\": {\n\t\t  \"allOf\": [\n\t\t\t{ \"$ref\": \"https://schemas.redevplugin.dev/plugin/release-signing-ledger-v1.schema.json\" },\n\t\t\t{ \"properties\": { \"kind\": { \"const\": \"checkpoint\" } }, \"required\": [\"kind\"] }\n\t\t  ]\n\t\t}\n\t  }\n\t},\n    \"document_head\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"pointer_locator\",\n        \"pointer_transport_token\",\n        \"pointer_epoch\",\n        \"pointer_sha256\",\n        \"document_locator\",\n        \"document_transport_token\",\n        \"document_sha256\",\n        \"generated_at\",\n        \"expires_at\",\n        \"key_id\"\n      ],\n      \"properties\": {\n        \"pointer_locator\": { \"$ref\": \"#/$defs/locator\" },\n        \"pointer_transport_token\": { \"$ref\": \"#/$defs/transport_token\" },\n        \"pointer_epoch\": { \"$ref\": \"#/$defs/epoch\" },\n        \"pointer_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"document_locator\": { \"$ref\": \"#/$defs/locator\" },\n        \"document_transport_token\": { \"$ref\": \"#/$defs/transport_token\" },\n        \"document_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"generated_at\": { \"$ref\": \"#/$defs/time\" },\n        \"expires_at\": { \"$ref\": \"#/$defs/time\" },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" }\n      }\n    },\n    \"channel\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"channel\"],\n      \"properties\": {\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"policy\": { \"$ref\": \"#/$defs/document_head\" },\n        \"revocation\": { \"$ref\": \"#/$defs/document_head\" },\n\t\t\"fence_generation\": { \"$ref\": \"#/$defs/counter\" },\n\t\t\"fence\": { \"$ref\": \"#/$defs/fence\" }\n      }\n    },\n\t\"fence\": {\n\t  \"type\": \"object\",\n\t  \"additionalProperties\": false,\n\t  \"required\": [\"generation\", \"reason\", \"fenced_at\"],\n\t  \"properties\": {\n\t\t\"generation\": { \"$ref\": \"#/$defs/revision\" },\n\t\t\"reason\": { \"enum\": [\"refresh_failed\", \"expired\", \"trust_advanced\", \"restart_recovery\"] },\n\t\t\"fenced_at\": { \"$ref\": \"#/$defs/time\" }\n\t  }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RESOURCE_SCOPE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/resource-scope-v1.schema.json\",\n  \"title\": \"ReDevPlugin persistent resource scope v1\",\n  \"description\": \"Host-issued ownership scope for persistent plugin resources. Session and channel hashes are intentionally excluded.\",\n  \"oneOf\": [\n    { \"$ref\": \"#/$defs/user_scope\" },\n    { \"$ref\": \"#/$defs/environment_scope\" }\n  ],\n  \"$defs\": {\n    \"owner_hash\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n    },\n    \"scope_kind\": {\n      \"type\": \"string\",\n      \"enum\": [\"user\", \"environment\"]\n    },\n    \"owner_scope_migration_required_code\": {\n      \"type\": \"string\",\n      \"const\": \"owner_scope_migration_required\"\n    },\n    \"user_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"kind\", \"owner_env_hash\", \"owner_user_hash\"],\n      \"properties\": {\n        \"kind\": { \"const\": \"user\" },\n        \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n        \"owner_user_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n      }\n    },\n    \"environment_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"kind\", \"owner_env_hash\"],\n      \"properties\": {\n        \"kind\": { \"const\": \"environment\" },\n        \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RUNTIME_ADMISSION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-admission-v1.schema.json\",\n  \"title\": \"ReDevPlugin runtime admission v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"target\", \"binary_name\", \"binary_sha256\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.runtime_admission.v1\"},\n    \"target\": {\"$ref\": \"#/$defs/target\"},\n    \"binary_name\": {\"const\": \"redevplugin-runtime\"},\n    \"binary_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n  },\n  \"$defs\": {\n    \"target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n    \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RUNTIME_DESCRIPTOR_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-descriptor-v2.schema.json\",\n  \"title\": \"ReDevPlugin runtime descriptor v2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"platform_version\", \"target\", \"rust_ipc_version\", \"wasm_abi_version\", \"contract_set_sha256\", \"binary_sha256\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"runtime-descriptor-v2\"},\n    \"platform_version\": {\"$ref\": \"#/$defs/semver\"},\n    \"target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n    \"rust_ipc_version\": {\"const\": \"rust-ipc-v6\"},\n    \"wasm_abi_version\": {\"const\": \"redevplugin-wasm-worker-v2\"},\n    \"contract_set_sha256\": {\"$ref\": \"#/$defs/sha256\"},\n    \"binary_sha256\": {\"$ref\": \"#/$defs/sha256\"}\n  },\n  \"$defs\": {\n    \"semver\": {\"type\": \"string\", \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-[0-9A-Za-z.-]+)?$\"},\n    \"sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"}\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RUNTIME_EXEC_JOURNAL_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/runtime-exec-journal-v1.schema.json\",\n  \"title\": \"ReDevPlugin runtime execution journal v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"module_id\", \"descriptor_digest\", \"state\", \"containment_identity\", \"mutation_outcome\"],\n  \"properties\": {\n    \"schema_version\": {\"const\": \"redevplugin.runtime_exec_journal.v1\"},\n    \"module_id\": {\"type\": \"string\", \"pattern\": \"^[A-Za-z0-9._-]{16,128}$\"},\n    \"descriptor_digest\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"state\": {\"enum\": [\"opened\", \"consumed\", \"bound\", \"running\", \"stopping\", \"closed\", \"reconcile_required\"]},\n    \"containment_identity\": {\"type\": \"string\", \"pattern\": \"^[A-Za-z0-9._:-]{1,256}$\"},\n    \"mutation_outcome\": {\"enum\": [\"committed\", \"not_committed\", \"unknown\"]}\n  }\n}\n".as_bytes();
static CONTRACT_BODY_RUST_IPC_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/ipc-v6.schema.json\",\n  \"title\": \"ReDevPlugin Rust IPC v6\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"ipc_version\", \"frame_type\", \"request_id\"],\n  \"properties\": {\n    \"ipc_version\": { \"const\": \"rust-ipc-v6\" },\n    \"frame_type\": {\n      \"enum\": [\"hello\", \"hello_ack\", \"heartbeat\", \"invoke_worker\", \"invoke_worker_result\", \"cancel_invoke\", \"cancel_invoke_ack\", \"compile_flight_register\", \"compile_flight_complete\", \"open_handle\", \"validate_handle_grant\", \"storage_file\", \"storage_kv\", \"storage_sqlite\", \"network_grant\", \"network_execute\", \"revoke_epoch\", \"revoke_epoch_ack\", \"session_revoke\", \"session_revoke_ack\", \"diagnostic\"]\n    },\n    \"request_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"parent_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"runtime_generation_id\": { \"type\": \"string\" },\n    \"payload\": true\n  },\n  \"allOf\": [\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"hello\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"target\", \"host_process_id\", \"host_ipc_version\", \"host_wasm_abi\", \"contract_set_sha256\", \"started_unix_nano\", \"channel_nonce\", \"runtime_lease_public_keys\", \"limits\"],\n            \"properties\": {\n              \"target\": { \"$ref\": \"#/$defs/runtime_target\" },\n              \"host_process_id\": { \"type\": \"integer\", \"minimum\": 1 },\n              \"host_ipc_version\": { \"const\": \"rust-ipc-v6\" },\n              \"host_wasm_abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n              \"contract_set_sha256\": { \"$ref\": \"#/$defs/lower_sha256\" },\n              \"started_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n              \"channel_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n              \"runtime_lease_public_keys\": {\n                \"type\": \"array\",\n                \"minItems\": 1,\n                \"items\": {\n                  \"type\": \"object\",\n                  \"additionalProperties\": false,\n                  \"required\": [\"algorithm\", \"key_id\", \"public_key_base64\"],\n                  \"properties\": {\n                    \"algorithm\": { \"const\": \"ed25519\" },\n                    \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n                    \"public_key_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n                  }\n                },\n                \"uniqueItems\": true\n              },\n              \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"hello_ack\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"runtime_version\", \"actual_target\", \"rust_ipc_version\", \"wasm_abi_version\", \"contract_set_sha256\", \"channel_nonce\", \"limits\", \"process_containment\"],\n            \"properties\": {\n              \"runtime_version\": { \"$ref\": \"#/$defs/semver\" },\n              \"actual_target\": { \"$ref\": \"#/$defs/runtime_target\" },\n              \"rust_ipc_version\": { \"const\": \"rust-ipc-v6\" },\n              \"wasm_abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n              \"contract_set_sha256\": { \"$ref\": \"#/$defs/lower_sha256\" },\n              \"channel_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n              \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" },\n              \"process_containment\": { \"$ref\": \"#/$defs/process_containment\" }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"heartbeat\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/heartbeat_request_payload\" },\n              { \"$ref\": \"#/$defs/heartbeat_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"invoke_worker\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"lease\", \"method\", \"invocation\"],\n            \"properties\": {\n              \"lease\": {\n                \"type\": \"object\",\n                \"additionalProperties\": false,\n                \"required\": [\n                  \"lease_id\",\n                  \"token_id\",\n                  \"lease_nonce\",\n                  \"runtime_generation_id\",\n                  \"plugin_instance_id\",\n                  \"plugin_id\",\n                  \"plugin_version\",\n                  \"active_fingerprint\",\n                  \"owner_env_hash\",\n                  \"issued_at_unix_ms\",\n                  \"method\",\n                  \"effect\",\n                  \"execution\",\n                  \"audit_correlation_id\",\n                  \"target_descriptor_hashes\",\n                  \"limits\",\n                  \"policy_revision\",\n                  \"management_revision\",\n                  \"revoke_epoch\",\n                  \"runtime_shard_id\",\n                  \"runtime_instance_id\",\n                  \"ipc_channel_id\",\n                  \"connection_nonce\",\n                  \"key_id\",\n                  \"signature\",\n                  \"expires_at_unix_ms\"\n                ],\n                \"properties\": {\n                  \"lease_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"token_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"lease_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n                  \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"plugin_version\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"issued_at_unix_ms\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n                  \"method\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n                  \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n                  \"operation_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"audit_correlation_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"surface_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"owner_user_hash\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"bridge_channel_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"target_descriptor_hashes\": {\n                    \"type\": \"array\",\n                    \"minItems\": 1,\n                    \"items\": { \"type\": \"string\", \"minLength\": 1 },\n                    \"uniqueItems\": true\n                  },\n                  \"limits\": {\n                    \"type\": \"object\",\n                    \"additionalProperties\": false,\n                    \"required\": [\"timeout_ms\", \"memory_bytes\", \"max_payload_bytes\", \"max_stream_bytes_per_sec\"],\n                    \"properties\": {\n                      \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n                      \"memory_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 268435456 },\n                      \"max_payload_bytes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n                      \"max_stream_bytes_per_sec\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 }\n                    }\n                  },\n                  \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n                  \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n                  \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n                  \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"ipc_channel_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"connection_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n                  \"key_id\": { \"type\": \"string\", \"minLength\": 1 },\n                  \"signature\": { \"type\": \"string\", \"pattern\": \"^ed25519:.+\" },\n                  \"expires_at_unix_ms\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n                },\n                \"allOf\": [\n                  {\n                    \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n                    \"then\": { \"not\": { \"anyOf\": [{ \"required\": [\"operation_id\"] }, { \"required\": [\"stream_id\"] }] } }\n                  },\n                  {\n                    \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n                    \"then\": { \"required\": [\"operation_id\"], \"not\": { \"required\": [\"stream_id\"] } }\n                  },\n                  {\n                    \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n                    \"then\": { \"required\": [\"operation_id\", \"stream_id\"] }\n                  }\n                ]\n              },\n              \"method\": { \"type\": \"string\", \"minLength\": 1 },\n              \"invocation\": {\n                \"$ref\": \"https://schemas.redevplugin.dev/plugin/worker-invocation-v3.schema.json\"\n              }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"invoke_worker_result\" } }, \"required\": [\"frame_type\"] },\n      \"then\": { \"$ref\": \"#/$defs/runtime_response_frame\" }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"cancel_invoke\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"invocation_request_id\"],\n            \"properties\": {\n              \"invocation_request_id\": { \"type\": \"string\", \"minLength\": 1 }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"cancel_invoke_ack\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/cancel_invoke_ack_response_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"compile_flight_register\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"parent_request_id\", \"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/compile_flight_lifecycle_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"compile_flight_complete\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"parent_request_id\", \"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/compile_flight_lifecycle_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"open_handle\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/open_handle_request_payload\" },\n              { \"$ref\": \"#/$defs/open_handle_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"validate_handle_grant\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/validate_handle_grant_request_payload\" },\n              { \"$ref\": \"#/$defs/validate_handle_grant_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_file\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/storage_file_request_payload\" },\n              { \"$ref\": \"#/$defs/storage_file_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_kv\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/storage_kv_request_payload\" },\n              { \"$ref\": \"#/$defs/storage_kv_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"storage_sqlite\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/storage_sqlite_request_payload\" },\n              { \"$ref\": \"#/$defs/storage_sqlite_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"network_grant\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/network_grant_request_payload\" },\n              { \"$ref\": \"#/$defs/network_grant_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"network_execute\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"oneOf\": [\n              { \"$ref\": \"#/$defs/network_execute_request_payload\" },\n              { \"$ref\": \"#/$defs/network_execute_response_payload\" }\n            ]\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"revoke_epoch\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"resource_scope\", \"plugin_instance_id\", \"revoke_epoch\"],\n            \"properties\": {\n              \"resource_scope\": { \"$ref\": \"#/$defs/environment_resource_scope\" },\n              \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n              \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n            }\n          }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"revoke_epoch_ack\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/revoke_epoch_ack_response_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"session_revoke\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/session_revoke_request_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"session_revoke_ack\" } }, \"required\": [\"frame_type\"] },\n      \"then\": {\n        \"required\": [\"runtime_generation_id\", \"payload\"],\n        \"properties\": {\n          \"payload\": { \"$ref\": \"#/$defs/session_revoke_ack_response_payload\" }\n        }\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"frame_type\": { \"const\": \"diagnostic\" } }, \"required\": [\"frame_type\"] },\n      \"then\": { \"$ref\": \"#/$defs/runtime_response_frame\" }\n    },\n    {\n      \"if\": {\n        \"properties\": {\n          \"frame_type\": {\n            \"enum\": [\"compile_flight_register\", \"compile_flight_complete\", \"open_handle\", \"validate_handle_grant\", \"storage_file\", \"storage_kv\", \"storage_sqlite\", \"network_grant\", \"network_execute\"]\n          }\n        },\n        \"required\": [\"frame_type\"]\n      },\n      \"then\": { \"required\": [\"parent_request_id\"] }\n    }\n  ],\n  \"$defs\": {\n    \"semver\": {\n      \"type\": \"string\",\n      \"pattern\": \"^(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)\\\\.(0|[1-9][0-9]*)(?:-(?:(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*)(?:\\\\.(?:0|[1-9][0-9]*|[0-9A-Za-z-]*[A-Za-z-][0-9A-Za-z-]*))*))?(?:\\\\+[0-9A-Za-z-]+(?:\\\\.[0-9A-Za-z-]+)*)?$\"\n    },\n    \"runtime_target\": {\"type\": \"string\", \"enum\": [\"linux/amd64\", \"linux/arm64\"]},\n    \"lower_sha256\": {\"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\"},\n    \"runtime_limits\": {\n      \"type\": \"object\",\n      \"description\": \"Negotiated runtime capacities. per_plugin_concurrency must not exceed worker_count. Route capacities are derived exactly from negotiated limits: active hostcall routes = worker_count, canceled hostcall retention = worker_count + queue_capacity, and compile-flight artifact routes = worker_count.\",\n      \"additionalProperties\": false,\n      \"required\": [\"worker_count\", \"queue_capacity\", \"per_plugin_concurrency\", \"module_cache_entries\", \"module_cache_source_bytes\"],\n      \"properties\": {\n        \"worker_count\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Number of runtime worker threads.\" },\n        \"queue_capacity\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Maximum queued worker invocations.\" },\n        \"per_plugin_concurrency\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 64, \"description\": \"Maximum concurrent invocations for one plugin; must not exceed worker_count.\" },\n        \"module_cache_entries\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 1024, \"description\": \"Maximum compiled modules retained by the runtime cache.\" },\n        \"module_cache_source_bytes\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 134217728, \"description\": \"Maximum source WASM bytes retained by the runtime cache (128 MiB).\" }\n      }\n    },\n    \"process_containment\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"profile\", \"seccomp_policy_sha256\", \"no_new_privs\", \"seccomp_tsync\", \"process_creation_denied\", \"reexec_denied\", \"active\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.process_containment.v1\" },\n        \"profile\": { \"const\": \"linux-runtime-v1\" },\n        \"seccomp_policy_sha256\": { \"const\": \"6305735925c1fbacaf4950df2e535d3a11cebec8ab7aa16ce37fca3c31745543\" },\n        \"no_new_privs\": { \"const\": true },\n        \"seccomp_tsync\": { \"const\": true },\n        \"process_creation_denied\": { \"const\": true },\n        \"reexec_denied\": { \"const\": true },\n        \"active\": { \"const\": true }\n      }\n    },\n    \"module_cache_metrics\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"hits\", \"misses\", \"compiles\", \"entries\", \"source_bytes\"],\n      \"properties\": {\n        \"hits\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"misses\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"compiles\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"entries\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"source_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n    },\n    \"worker_artifact_path\": {\n      \"type\": \"string\",\n      \"pattern\": \"^workers/.+\\\\.wasm$\",\n      \"not\": {\n        \"anyOf\": [\n          { \"pattern\": \"(^|/)\\\\.\" },\n          { \"pattern\": \"//\" },\n          { \"pattern\": \"\\\\\\\\\" }\n        ]\n      }\n    },\n    \"heartbeat_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"sent_unix_nano\", \"max_staleness_ms\"],\n      \"properties\": {\n        \"sent_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"max_staleness_ms\": { \"type\": \"integer\", \"minimum\": 1 }\n      }\n    },\n    \"heartbeat_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"result\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"result\": { \"$ref\": \"#/$defs/heartbeat_ack_result\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n          \"properties\": {\n            \"ok\": { \"const\": false },\n            \"code\": { \"type\": \"string\", \"minLength\": 1 },\n            \"message\": { \"type\": \"string\", \"minLength\": 1 },\n            \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n          }\n        }\n      ]\n    },\n    \"heartbeat_ack_result\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"runtime_generation_id\",\n        \"runtime_unix_nano\",\n        \"max_staleness_ms\",\n        \"host_sent_unix_nano\",\n        \"active_invocations\",\n        \"queued_invocations\",\n        \"limits\",\n        \"module_cache\"\n      ],\n      \"properties\": {\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"max_staleness_ms\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"host_sent_unix_nano\": { \"type\": \"integer\", \"minimum\": 1 },\n        \"active_invocations\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"queued_invocations\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"limits\": { \"$ref\": \"#/$defs/runtime_limits\" },\n        \"module_cache\": { \"$ref\": \"#/$defs/module_cache_metrics\" }\n      }\n    },\n    \"cancel_invoke_ack_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"result\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"result\": {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"invocation_request_id\", \"disposition\"],\n              \"properties\": {\n                \"invocation_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n                \"disposition\": { \"enum\": [\"queued\", \"running\", \"complete\"] }\n              }\n            }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n          \"properties\": {\n            \"ok\": { \"const\": false },\n            \"code\": { \"type\": \"string\", \"minLength\": 1 },\n            \"message\": { \"type\": \"string\", \"minLength\": 1 },\n            \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n          }\n        }\n      ]\n    },\n    \"hostcall_failure_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n      \"properties\": {\n        \"ok\": { \"const\": false },\n        \"code\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128, \"pattern\": \"^[A-Z][A-Z0-9_]{0,127}$\" },\n        \"message\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 4096 },\n        \"error_origin\": { \"const\": \"hostcall\" }\n      }\n    },\n    \"compile_flight_lifecycle_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"artifact_request_id\", \"package_hash\", \"artifact\", \"artifact_sha256\", \"wasm_abi_version\"],\n      \"properties\": {\n        \"artifact_request_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n        \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"wasm_abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" }\n      }\n    },\n    \"open_handle_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"package_hash\", \"artifact\", \"artifact_sha256\"],\n      \"properties\": {\n        \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n        \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" }\n      }\n    },\n    \"open_handle_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"package_hash\", \"artifact\", \"sha256\", \"content_base64\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n            \"artifact\": { \"$ref\": \"#/$defs/worker_artifact_path\" },\n            \"sha256\": { \"$ref\": \"#/$defs/sha256\" },\n            \"content_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n          }\n        },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"validate_handle_grant_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"handle_grant_token\",\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"owner_session_hash\",\n        \"owner_user_hash\",\n        \"owner_env_hash\",\n        \"session_channel_id_hash\",\n        \"handle_id\",\n        \"method\",\n        \"resource_scope\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\"\n      ],\n      \"properties\": {\n        \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"owner_user_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"handle_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"method\": { \"type\": \"string\", \"minLength\": 1 },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n      }\n    },\n    \"validate_handle_grant_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"handle_grant_id\", \"handle_id\", \"method\", \"runtime_generation_id\", \"resource_scope\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"handle_grant_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"handle_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"method\": { \"type\": \"string\", \"minLength\": 1 },\n            \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n            \"max_bytes_per_second\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"max_total_bytes\": { \"type\": \"integer\", \"minimum\": 0 }\n          }\n        },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"storage_file_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"handle_grant_token\",\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"handle_id\",\n        \"method\",\n        \"resource_scope\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\",\n        \"operation\",\n        \"store_id\"\n      ],\n      \"properties\": {\n        \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n        \"method\": { \"const\": \"storage.files\" },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"operation\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\"] },\n        \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n        \"path\": { \"type\": \"string\" },\n        \"data_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"max_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_entries\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"recursive\": { \"type\": \"boolean\" }\n      }\n    },\n    \"storage_file_response_payload\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/storage_file_read_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_file_write_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_file_delete_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_file_list_success_response_payload\" },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"storage_file_read_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"path\", \"data_base64\", \"size_bytes\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"path\": { \"type\": \"string\" },\n        \"data_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_file_write_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"path\", \"size_bytes\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"path\": { \"type\": \"string\" },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_file_delete_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"path\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"path\": { \"type\": \"string\" }\n      }\n    },\n    \"storage_file_list_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"path\", \"entries\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"path\": { \"type\": \"string\" },\n        \"entries\": {\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/$defs/storage_file_entry\" }\n        },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_file_entry\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"path\", \"dir\", \"updated_at\"],\n      \"properties\": {\n        \"path\": { \"type\": \"string\", \"minLength\": 1 },\n        \"dir\": { \"type\": \"boolean\" },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"updated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n      }\n    },\n    \"storage_kv_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"handle_grant_token\",\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"handle_id\",\n        \"method\",\n        \"resource_scope\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\",\n        \"operation\",\n        \"store_id\"\n      ],\n      \"properties\": {\n        \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n        \"method\": { \"const\": \"storage.kv\" },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"operation\": { \"enum\": [\"get\", \"put\", \"delete\", \"list\"] },\n        \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n        \"key\": { \"type\": \"string\" },\n        \"value_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"prefix\": { \"type\": \"string\" },\n        \"max_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_entries\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"storage_kv_response_payload\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/storage_kv_get_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_kv_put_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_kv_delete_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_kv_list_success_response_payload\" },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"storage_kv_get_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"key\", \"value_base64\", \"size_bytes\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"key\": { \"type\": \"string\" },\n        \"value_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_kv_put_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"key\", \"size_bytes\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"key\": { \"type\": \"string\" },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_kv_delete_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"key\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"key\": { \"type\": \"string\" }\n      }\n    },\n    \"storage_kv_list_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"entries\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"prefix\": { \"type\": \"string\" },\n        \"entries\": {\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/$defs/storage_kv_entry\" }\n        },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_kv_entry\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"key\", \"size_bytes\", \"updated_at\"],\n      \"properties\": {\n        \"key\": { \"type\": \"string\", \"minLength\": 1 },\n        \"size_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"updated_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n      }\n    },\n    \"storage_sqlite_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"handle_grant_token\",\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"handle_id\",\n        \"method\",\n        \"resource_scope\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\",\n        \"operation\",\n        \"store_id\",\n        \"sql\"\n      ],\n      \"properties\": {\n        \"handle_grant_token\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"handle_id\": { \"type\": \"string\", \"pattern\": \"^storage:[A-Za-z0-9_.-]+$\" },\n        \"method\": { \"const\": \"storage.sqlite\" },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"operation\": { \"enum\": [\"exec\", \"query\"] },\n        \"store_id\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_.-]+$\" },\n        \"database\": { \"type\": \"string\" },\n        \"sql\": { \"type\": \"string\", \"minLength\": 1 },\n        \"args\": {\n          \"type\": \"array\",\n          \"items\": { \"$ref\": \"#/$defs/storage_sqlite_value\" }\n        },\n        \"max_rows\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_response_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"storage_sqlite_response_payload\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/storage_sqlite_exec_success_response_payload\" },\n        { \"$ref\": \"#/$defs/storage_sqlite_query_success_response_payload\" },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"storage_sqlite_exec_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"database\", \"rows_affected\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"database\": { \"type\": \"string\" },\n        \"rows_affected\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"last_insert_id\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_sqlite_query_success_response_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"ok\", \"database\", \"columns\", \"rows\", \"usage\"],\n      \"properties\": {\n        \"ok\": { \"const\": true },\n        \"database\": { \"type\": \"string\" },\n        \"columns\": {\n          \"type\": \"array\",\n          \"items\": { \"type\": \"string\" }\n        },\n        \"rows\": {\n          \"type\": \"array\",\n          \"items\": {\n            \"type\": \"array\",\n            \"items\": { \"$ref\": \"#/$defs/storage_sqlite_value\" }\n          }\n        },\n        \"usage\": { \"$ref\": \"#/$defs/storage_usage\" }\n      }\n    },\n    \"storage_sqlite_value\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"oneOf\": [\n        { \"required\": [\"null\"], \"properties\": { \"null\": { \"const\": true } } },\n        { \"required\": [\"int\"] },\n        { \"required\": [\"float\"] },\n        { \"required\": [\"text\"] },\n        { \"required\": [\"blob_base64\"] }\n      ],\n      \"properties\": {\n        \"null\": { \"type\": \"boolean\" },\n        \"int\": { \"type\": \"integer\" },\n        \"float\": { \"type\": \"number\" },\n        \"text\": { \"type\": \"string\" },\n        \"blob_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" }\n      }\n    },\n    \"storage_usage\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"plugin_instance_id\", \"store_id\", \"usage_bytes\", \"quota_bytes\", \"usage_files\", \"quota_files\"],\n      \"properties\": {\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"store_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"usage_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"quota_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"usage_files\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"quota_files\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"network_grant_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"resource_scope\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\",\n        \"connector_id\",\n        \"transport\",\n        \"destination\"\n      ],\n      \"properties\": {\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n        \"destination\": { \"type\": \"string\", \"minLength\": 1 },\n        \"ttl_ms\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"network_grant_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\n            \"ok\", \"grant_id\", \"plugin_instance_id\", \"active_fingerprint\",\n            \"resource_scope\",\n            \"policy_revision\", \"management_revision\", \"revoke_epoch\", \"connector_id\",\n            \"transport\", \"destination\", \"runtime_generation_id\",\n            \"target_classifier_version\", \"expires_at\"\n          ],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n            \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n            \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n            \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n            \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n            \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n            \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n            \"destination\": { \"$ref\": \"#/$defs/network_destination\" },\n            \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"target_classifier_version\": { \"const\": \"target-classifier-v2\" },\n            \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" }\n          }\n        },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"network_execute_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"plugin_id\",\n        \"plugin_instance_id\",\n        \"active_fingerprint\",\n        \"resource_scope\",\n        \"runtime_instance_id\",\n        \"runtime_generation_id\",\n        \"runtime_shard_id\",\n        \"policy_revision\",\n        \"management_revision\",\n        \"revoke_epoch\",\n        \"connector_id\",\n        \"transport\",\n        \"destination\",\n        \"owner_session_hash\",\n        \"owner_user_hash\",\n        \"owner_env_hash\",\n        \"session_channel_id_hash\"\n      ],\n      \"properties\": {\n        \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"resource_scope\": { \"$ref\": \"#/$defs/resource_scope\" },\n        \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"runtime_shard_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n        \"destination\": { \"type\": \"string\", \"minLength\": 1 },\n        \"ttl_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"operation\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] },\n        \"method\": { \"type\": \"string\", \"minLength\": 1 },\n        \"path\": { \"type\": \"string\" },\n        \"query\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          }\n        },\n        \"headers\": {\n          \"type\": \"object\",\n          \"additionalProperties\": {\n            \"type\": \"array\",\n            \"items\": { \"type\": \"string\" }\n          }\n        },\n        \"message_type\": { \"enum\": [\"text\", \"binary\"] },\n        \"body_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"payload_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n        \"max_request_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_response_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_chunk_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"max_buffered_bytes\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"timeout_ms\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"stream_id\": { \"type\": \"string\" },\n        \"stream_method\": { \"type\": \"string\" },\n        \"stream_effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n        \"stream_execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n        \"surface_instance_id\": { \"type\": \"string\" },\n        \"owner_session_hash\": { \"type\": \"string\" },\n        \"owner_user_hash\": { \"type\": \"string\" },\n        \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"session_channel_id_hash\": { \"type\": \"string\" },\n        \"bridge_channel_id\": { \"type\": \"string\" },\n        \"content_type\": { \"type\": \"string\" }\n      }\n    },\n    \"network_execute_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"transport\", \"destination\", \"grant_id\", \"connector_id\", \"runtime_generation_id\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n            \"destination\": { \"$ref\": \"#/$defs/network_destination\" },\n            \"status_code\": { \"type\": \"integer\", \"minimum\": 100, \"maximum\": 599 },\n            \"headers\": {\n              \"type\": \"object\",\n              \"additionalProperties\": {\n                \"type\": \"array\",\n                \"items\": { \"type\": \"string\" }\n              }\n            },\n            \"message_type\": { \"enum\": [\"text\", \"binary\"] },\n            \"body_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n            \"payload_base64\": { \"type\": \"string\", \"contentEncoding\": \"base64\" },\n            \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"bytes_read\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"chunk_count\": { \"type\": \"integer\", \"minimum\": 0 },\n            \"grant_id\": { \"type\": \"string\", \"pattern\": \"^netgrant_[0-9a-f]{32}$\" },\n            \"connector_id\": { \"type\": \"string\", \"minLength\": 1 },\n            \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 }\n          }\n        },\n        { \"$ref\": \"#/$defs/hostcall_failure_response_payload\" }\n      ]\n    },\n    \"resource_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"kind\", \"owner_env_hash\"],\n      \"properties\": {\n        \"kind\": { \"enum\": [\"user\", \"environment\"] },\n        \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n        \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n      },\n      \"oneOf\": [\n        { \"properties\": { \"kind\": { \"const\": \"user\" } }, \"required\": [\"owner_user_hash\"] },\n        { \"properties\": { \"kind\": { \"const\": \"environment\" } }, \"not\": { \"required\": [\"owner_user_hash\"] } }\n      ]\n    },\n    \"environment_resource_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"kind\", \"owner_env_hash\"],\n      \"properties\": {\n        \"kind\": { \"const\": \"environment\" },\n        \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" }\n      }\n    },\n    \"network_destination\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"transport\", \"host\", \"port\"],\n      \"properties\": {\n        \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n        \"scheme\": { \"enum\": [\"http\", \"https\", \"ws\", \"wss\"] },\n        \"host\": { \"type\": \"string\", \"minLength\": 1 },\n        \"port\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 65535 }\n      }\n    },\n    \"revoke_epoch_ack_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"result\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"result\": { \"$ref\": \"#/$defs/revoke_epoch_ack_result\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n          \"properties\": {\n            \"ok\": { \"const\": false },\n            \"code\": { \"type\": \"string\", \"minLength\": 1 },\n            \"message\": { \"type\": \"string\", \"minLength\": 1 },\n            \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n          }\n        }\n      ]\n    },\n    \"revoke_epoch_ack_result\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"resource_scope\",\n        \"plugin_instance_id\",\n        \"revoke_epoch\",\n        \"closed_socket_count\",\n        \"closed_stream_count\",\n        \"closed_storage_handle_count\"\n      ],\n      \"properties\": {\n        \"resource_scope\": { \"$ref\": \"#/$defs/environment_resource_scope\" },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"closed_socket_count\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"closed_stream_count\": { \"type\": \"integer\", \"minimum\": 0 },\n        \"closed_storage_handle_count\": { \"type\": \"integer\", \"minimum\": 0 }\n      }\n    },\n    \"session_revoke_request_payload\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"session_revoke_sequence\",\n        \"owner_session_hash\",\n        \"owner_user_hash\",\n        \"owner_env_hash\",\n        \"session_channel_id_hash\"\n      ],\n      \"properties\": {\n        \"session_revoke_sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"owner_session_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n        \"owner_user_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n        \"owner_env_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" },\n        \"session_channel_id_hash\": { \"$ref\": \"#/$defs/session_owner_hash\" }\n      }\n    },\n    \"session_owner_hash\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n    },\n    \"session_revoke_ack_response_payload\": {\n      \"oneOf\": [\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"result\"],\n          \"properties\": {\n            \"ok\": { \"const\": true },\n            \"result\": { \"$ref\": \"#/$defs/session_revoke_ack_result\" }\n          }\n        },\n        {\n          \"type\": \"object\",\n          \"additionalProperties\": false,\n          \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n          \"properties\": {\n            \"ok\": { \"const\": false },\n            \"code\": {\n              \"enum\": [\n                \"SESSION_REVOKE_SEQUENCE_STALE\",\n                \"SESSION_REVOKE_DRAIN_TIMEOUT\",\n                \"WORKER_INVOCATION_INVALID\"\n              ]\n            },\n            \"message\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 4096 },\n            \"error_origin\": { \"const\": \"runtime\" }\n          }\n        }\n      ]\n    },\n    \"session_revoke_ack_result\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"session_revoke_sequence\", \"state\", \"counts\"],\n      \"properties\": {\n        \"session_revoke_sequence\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"state\": { \"const\": \"complete\" },\n        \"counts\": { \"$ref\": \"#/$defs/session_revoke_ack_counts\" }\n      }\n    },\n    \"session_revoke_ack_counts\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"queued_invocations\",\n        \"running_invocations\",\n        \"storage_hostcalls\",\n        \"active_network_requests\",\n        \"sockets\",\n        \"network_streams\"\n      ],\n      \"properties\": {\n        \"queued_invocations\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n        \"running_invocations\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n        \"storage_hostcalls\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n        \"active_network_requests\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n        \"sockets\": { \"$ref\": \"#/$defs/session_revoke_count\" },\n        \"network_streams\": { \"$ref\": \"#/$defs/session_revoke_count\" }\n      }\n    },\n    \"session_revoke_count\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 9007199254740991\n    },\n    \"runtime_response_frame\": {\n      \"required\": [\"runtime_generation_id\", \"payload\"],\n      \"properties\": {\n        \"payload\": {\n          \"oneOf\": [\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"ok\", \"result\"],\n              \"properties\": {\n                \"ok\": { \"const\": true },\n                \"result\": true\n              }\n            },\n            {\n              \"type\": \"object\",\n              \"additionalProperties\": false,\n              \"required\": [\"ok\", \"code\", \"message\", \"error_origin\"],\n              \"properties\": {\n                \"ok\": { \"const\": false },\n                \"code\": { \"type\": \"string\", \"minLength\": 1 },\n                \"message\": { \"type\": \"string\", \"minLength\": 1 },\n                \"error_origin\": { \"enum\": [\"runtime\", \"hostcall\", \"plugin\"] }\n              }\n            }\n          ]\n        }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_SESSION_SCOPE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/session-scope-v1.schema.json\",\n  \"title\": \"ReDevPlugin session scope lifecycle v1\",\n  \"description\": \"Exact authenticated-session ownership, teardown phases, and public revoke results. Teardown identities and closed-session proofs are intentionally excluded from every wire shape.\",\n  \"$ref\": \"#/$defs/public_revoke_result\",\n  \"$defs\": {\n    \"owner_hash\": {\n      \"type\": \"string\",\n      \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\"\n    },\n    \"session_scope\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"owner_session_hash\",\n        \"owner_user_hash\",\n        \"owner_env_hash\",\n        \"session_channel_id_hash\"\n      ],\n      \"properties\": {\n        \"owner_session_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n        \"owner_user_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n        \"owner_env_hash\": { \"$ref\": \"#/$defs/owner_hash\" },\n        \"session_channel_id_hash\": { \"$ref\": \"#/$defs/owner_hash\" }\n      }\n    },\n    \"teardown_phase\": {\n      \"type\": \"string\",\n      \"enum\": [\"bridge\", \"confirmation\", \"execution\", \"operation\", \"stream\", \"runtime\"]\n    },\n    \"revoke_counts\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\n        \"surfaces\",\n        \"asset_tickets\",\n        \"asset_sessions\",\n        \"plugin_gateway_tokens\",\n        \"confirmation_tokens\",\n        \"stream_tickets\",\n        \"handle_grants\",\n        \"confirmations\",\n        \"operations\",\n        \"streams\",\n        \"runtime_executions\",\n        \"active_network_requests\",\n        \"sockets\",\n        \"network_streams\",\n        \"storage_hostcalls\"\n      ],\n      \"properties\": {\n        \"surfaces\": { \"$ref\": \"#/$defs/count\" },\n        \"asset_tickets\": { \"$ref\": \"#/$defs/count\" },\n        \"asset_sessions\": { \"$ref\": \"#/$defs/count\" },\n        \"plugin_gateway_tokens\": { \"$ref\": \"#/$defs/count\" },\n        \"confirmation_tokens\": { \"$ref\": \"#/$defs/count\" },\n        \"stream_tickets\": { \"$ref\": \"#/$defs/count\" },\n        \"handle_grants\": { \"$ref\": \"#/$defs/count\" },\n        \"confirmations\": { \"$ref\": \"#/$defs/count\" },\n        \"operations\": { \"$ref\": \"#/$defs/count\" },\n        \"streams\": { \"$ref\": \"#/$defs/count\" },\n        \"runtime_executions\": { \"$ref\": \"#/$defs/count\" },\n        \"active_network_requests\": { \"$ref\": \"#/$defs/count\" },\n        \"sockets\": { \"$ref\": \"#/$defs/count\" },\n        \"network_streams\": { \"$ref\": \"#/$defs/count\" },\n        \"storage_hostcalls\": { \"$ref\": \"#/$defs/count\" }\n      }\n    },\n    \"count\": {\n      \"type\": \"integer\",\n      \"minimum\": 0,\n      \"maximum\": 9007199254740991\n    },\n    \"complete_revoke_result\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"state\", \"fenced\", \"complete\", \"counts\"],\n      \"properties\": {\n        \"state\": { \"const\": \"complete\" },\n        \"fenced\": { \"const\": true },\n        \"complete\": { \"const\": true },\n        \"counts\": { \"$ref\": \"#/$defs/revoke_counts\" }\n      }\n    },\n    \"incomplete_revoke_result\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"state\", \"fenced\", \"complete\", \"counts\"],\n      \"properties\": {\n        \"state\": { \"const\": \"incomplete\" },\n        \"fenced\": { \"const\": true },\n        \"complete\": { \"const\": false },\n        \"counts\": { \"$ref\": \"#/$defs/revoke_counts\" }\n      }\n    },\n    \"public_revoke_result\": {\n      \"oneOf\": [\n        { \"$ref\": \"#/$defs/complete_revoke_result\" },\n        { \"$ref\": \"#/$defs/incomplete_revoke_result\" }\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_TARGET_CLASSIFIER_FIXTURE: &[u8] = "{\n  \"version\": \"target-classifier-v2\",\n  \"default_policy\": \"allow_public_unicast_only\",\n  \"normalization\": {\n    \"dns_names\": \"ASCII lowercase with one trailing dot stripped before special-host checks\",\n    \"ip_literals\": \"netip canonical form; IPv4-mapped IPv6 addresses are unmapped before blocked-range checks\"\n  },\n  \"blocked_ip_ranges\": [\n    \"0.0.0.0/8\",\n    \"10.0.0.0/8\",\n    \"100.64.0.0/10\",\n    \"127.0.0.0/8\",\n    \"169.254.0.0/16\",\n    \"172.16.0.0/12\",\n    \"192.0.0.0/24\",\n    \"192.0.2.0/24\",\n    \"192.31.196.0/24\",\n    \"192.52.193.0/24\",\n    \"192.88.99.0/24\",\n    \"192.168.0.0/16\",\n    \"192.175.48.0/24\",\n    \"198.18.0.0/15\",\n    \"198.51.100.0/24\",\n    \"203.0.113.0/24\",\n    \"224.0.0.0/4\",\n    \"240.0.0.0/4\",\n    \"::/96\",\n    \"::1/128\",\n    \"64:ff9b::/96\",\n    \"64:ff9b:1::/48\",\n    \"100::/64\",\n    \"2001::/23\",\n    \"2001:db8::/32\",\n    \"2002::/16\",\n    \"3fff::/20\",\n    \"5f00::/16\",\n    \"2620:4f:8000::/48\",\n    \"fc00::/7\",\n    \"fe80::/10\",\n    \"fec0::/10\",\n    \"ff00::/8\"\n  ],\n  \"special_hosts\": [\n    \"localhost\",\n    \"metadata.google.internal\",\n    \"metadata.goog\",\n    \"instance-data\",\n    \"instance-data.ec2.internal\",\n    \"metadata.azure.internal\",\n    \"169.254.169.254\"\n  ],\n  \"fixtures\": [\n    {\n      \"name\": \"public-http-origin\",\n      \"transport\": \"http\",\n      \"destination\": \"https://api.example.com\",\n      \"resolved_address\": \"93.184.216.34\",\n      \"decision\": \"allow\"\n    },\n    {\n      \"name\": \"public-ipv4-literal\",\n      \"transport\": \"tcp\",\n      \"destination\": \"1.1.1.1:443\",\n      \"decision\": \"allow\"\n    },\n    {\n      \"name\": \"public-ipv4-mapped-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"dns.example.com:853\",\n      \"resolved_address\": \"::ffff:8.8.8.8\",\n      \"decision\": \"allow\"\n    },\n    {\n      \"name\": \"public-ipv6-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"dns.example.com:853\",\n      \"resolved_address\": \"2606:4700:4700::1111\",\n      \"decision\": \"allow\"\n    },\n    {\n      \"name\": \"punycode-public-host\",\n      \"transport\": \"http\",\n      \"destination\": \"https://xn--bcher-kva.example\",\n      \"resolved_address\": \"1.0.0.1\",\n      \"decision\": \"allow\"\n    },\n    {\n      \"name\": \"localhost-special-host\",\n      \"transport\": \"http\",\n      \"destination\": \"http://localhost\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"metadata-special-host-trailing-dot\",\n      \"transport\": \"websocket\",\n      \"destination\": \"wss://metadata.google.internal.\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"instance-data-special-host\",\n      \"transport\": \"http\",\n      \"destination\": \"http://instance-data.ec2.internal\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"this-network-ipv4-literal\",\n      \"transport\": \"udp\",\n      \"destination\": \"0.1.2.3:53\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"private-ipv4-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"10.0.0.10\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"shared-address-space-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"100.64.0.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"loopback-ipv4-literal\",\n      \"transport\": \"tcp\",\n      \"destination\": \"127.0.0.1:443\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"link-local-ipv4-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"dns.example.com:53\",\n      \"resolved_address\": \"169.254.169.254\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"private-172-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"172.31.255.255\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ietf-protocol-assignments-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"192.0.0.9\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"documentation-192-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"192.0.2.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"as112-v4-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"dns.example.com:53\",\n      \"resolved_address\": \"192.31.196.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"amt-v4-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"service.example.com:2268\",\n      \"resolved_address\": \"192.52.193.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"6to4-relay-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"192.88.99.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"private-192-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"192.168.1.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"direct-delegation-as112-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"dns.example.com:53\",\n      \"resolved_address\": \"192.175.48.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"benchmark-ipv4-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"198.18.0.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"documentation-198-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"198.51.100.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"documentation-203-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"203.0.113.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"multicast-ipv4-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"service.example.com:5000\",\n      \"resolved_address\": \"239.1.2.3\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"reserved-ipv4-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"240.0.0.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ipv4-mapped-shared-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"::ffff:100.64.0.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ipv4-compatible-ipv6-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"::192.0.2.1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"unspecified-ipv6-literal\",\n      \"transport\": \"tcp\",\n      \"destination\": \"[::]:443\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"loopback-ipv6-literal\",\n      \"transport\": \"tcp\",\n      \"destination\": \"[::1]:443\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"nat64-well-known-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"64:ff9b::c000:201\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"nat64-local-use-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"64:ff9b:1::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"discard-only-ipv6-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"service.example.com:5000\",\n      \"resolved_address\": \"100::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ietf-special-ipv6-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"2001::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"documentation-ipv6-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"2001:db8::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"six-to-four-ipv6-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"2002:c000:0201::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"documentation-3fff-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"3fff::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"segment-routing-sid-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"service.example.com:443\",\n      \"resolved_address\": \"5f00::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"direct-delegation-as112-ipv6-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"dns.example.com:53\",\n      \"resolved_address\": \"2620:4f:8000::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ula-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"fd00::10\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"ipv6-link-local-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"fe80::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"site-local-resolved\",\n      \"transport\": \"tcp\",\n      \"destination\": \"db.example.com:5432\",\n      \"resolved_address\": \"fec0::1\",\n      \"decision\": \"deny\"\n    },\n    {\n      \"name\": \"multicast-ipv6-resolved\",\n      \"transport\": \"udp\",\n      \"destination\": \"service.example.com:5000\",\n      \"resolved_address\": \"ff02::1\",\n      \"decision\": \"deny\"\n    }\n  ]\n}\n".as_bytes();
static CONTRACT_BODY_TOKEN_TICKET_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/token-ticket-v4.schema.json\",\n  \"title\": \"ReDevPlugin token and ticket v4\",\n  \"description\": \"Host-issued token records. Exact session-bound audiences participate in the session-scope-v1 revocation lifecycle.\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"token_kind\",\n    \"token_id\",\n    \"audience\",\n    \"revision\",\n    \"issued_at\",\n    \"expires_at\",\n    \"nonce\",\n    \"use\"\n  ],\n  \"properties\": {\n    \"token_kind\": { \"$ref\": \"#/$defs/token_kind\" },\n    \"token_id\": { \"$ref\": \"#/$defs/token_id\" },\n    \"token_hash\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[0-9a-f]{64}$\",\n      \"description\": \"Server-side record only. Cleartext token is returned exactly once and must not be persisted.\"\n    },\n    \"audience\": { \"$ref\": \"#/$defs/audience\" },\n    \"revision\": { \"$ref\": \"#/$defs/revision\" },\n    \"issued_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"expires_at\": { \"type\": \"string\", \"format\": \"date-time\" },\n    \"nonce\": { \"type\": \"string\", \"minLength\": 16 },\n    \"use\": { \"enum\": [\"single_use\", \"reusable\"] },\n    \"consumed\": { \"type\": \"boolean\" },\n    \"consumed_at\": { \"type\": [\"string\", \"null\"], \"format\": \"date-time\" },\n    \"revoked\": { \"type\": \"boolean\" },\n    \"revoked_at\": { \"type\": [\"string\", \"null\"], \"format\": \"date-time\" },\n    \"bound_bridge_channel_id\": { \"type\": \"string\" },\n    \"limits\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"max_bytes_per_second\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"max_total_bytes\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 }\n      }\n    }\n  },\n  \"$defs\": {\n    \"token_kind\": {\n      \"enum\": [\n        \"asset_ticket\",\n        \"asset_session\",\n        \"plugin_gateway_token\",\n        \"confirmation_token\",\n        \"handle_grant\",\n        \"stream_ticket\"\n      ]\n    },\n    \"token_id\": {\n      \"type\": \"string\",\n      \"description\": \"Opaque token or ticket identifier. Prefixes are stable namespaces: at_ asset tickets, as_ asset sessions, pgt_ plugin gateway tokens, ct_ confirmation tokens, hg_ handle grants, and st_ stream tickets.\",\n      \"pattern\": \"^(at|as|pgt|ct|hg|st)_[A-Za-z0-9_-]+$\"\n    },\n    \"audience\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"plugin_instance_id\", \"active_fingerprint\"],\n      \"properties\": {\n        \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"plugin_version\": { \"type\": \"string\", \"minLength\": 1 },\n        \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n        \"surface_id\": { \"type\": \"string\", \"minLength\": 1 },\n        \"surface_instance_id\": { \"type\": \"string\" },\n        \"entry_path\": { \"type\": \"string\", \"minLength\": 1 },\n        \"entry_sha256\": {\n          \"type\": \"string\",\n          \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n        },\n        \"asset_session_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n        \"route_role\": { \"enum\": [\"trusted_parent\", \"trusted_intent\"] },\n        \"owner_session_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"owner_user_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n        \"owner_env_hash\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9][A-Za-z0-9._:-]{0,255}$\" },\n        \"session_channel_id_hash\": { \"type\": \"string\", \"minLength\": 1 },\n        \"bridge_channel_id\": { \"type\": \"string\" },\n        \"runtime_instance_id\": { \"type\": \"string\" },\n        \"runtime_generation_id\": { \"type\": \"string\" },\n        \"runtime_shard_id\": { \"type\": \"string\" },\n        \"ipc_channel_id\": { \"type\": \"string\" },\n        \"connection_nonce\": { \"type\": \"string\", \"minLength\": 16 },\n        \"stream_id\": { \"type\": \"string\" },\n        \"operation_id\": { \"type\": \"string\" },\n        \"audit_correlation_id\": { \"type\": \"string\" },\n        \"stream_direction\": { \"enum\": [\"read\", \"write\", \"duplex\"] },\n        \"handle_id\": { \"type\": \"string\" },\n        \"confirmation_id\": { \"type\": \"string\" },\n        \"method\": { \"type\": \"string\" },\n        \"resource_scope\": { \"$ref\": \"https://schemas.redevplugin.dev/plugin/resource-scope-v1.schema.json\" },\n        \"request_hash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n        },\n        \"plan_hash\": {\n          \"type\": \"string\",\n          \"pattern\": \"^sha256:[0-9a-f]{64}$\"\n        }\n      }\n    },\n    \"revision\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"policy_revision\", \"management_revision\", \"revoke_epoch\"],\n      \"properties\": {\n        \"policy_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"management_revision\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740991 },\n        \"revoke_epoch\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 }\n      }\n    }\n  },\n  \"allOf\": [\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"asset_ticket\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^at_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"single_use\" },\n          \"audience\": {\n            \"not\": { \"required\": [\"resource_scope\"] },\n            \"required\": [\n              \"plugin_id\",\n              \"plugin_instance_id\",\n              \"plugin_version\",\n              \"active_fingerprint\",\n              \"surface_id\",\n              \"surface_instance_id\",\n              \"entry_path\",\n              \"entry_sha256\",\n              \"asset_session_nonce\",\n              \"route_role\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"runtime_generation_id\"\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"asset_session\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^as_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"reusable\" },\n          \"audience\": {\n            \"not\": { \"required\": [\"resource_scope\"] },\n            \"required\": [\n              \"plugin_id\",\n              \"plugin_instance_id\",\n              \"plugin_version\",\n              \"active_fingerprint\",\n              \"surface_id\",\n              \"surface_instance_id\",\n              \"entry_path\",\n              \"entry_sha256\",\n              \"asset_session_nonce\",\n              \"route_role\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"runtime_generation_id\"\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"plugin_gateway_token\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^pgt_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"reusable\" },\n          \"audience\": {\n            \"not\": { \"required\": [\"resource_scope\"] },\n            \"required\": [\n              \"plugin_id\",\n              \"plugin_instance_id\",\n              \"plugin_version\",\n              \"active_fingerprint\",\n              \"surface_id\",\n              \"surface_instance_id\",\n              \"entry_path\",\n              \"entry_sha256\",\n              \"asset_session_nonce\",\n              \"route_role\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"bridge_channel_id\",\n              \"runtime_generation_id\"\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"confirmation_token\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^ct_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"single_use\" },\n          \"audience\": {\n            \"not\": { \"required\": [\"resource_scope\"] },\n            \"required\": [\n              \"plugin_id\",\n              \"plugin_instance_id\",\n              \"plugin_version\",\n              \"active_fingerprint\",\n              \"surface_id\",\n              \"surface_instance_id\",\n              \"entry_path\",\n              \"entry_sha256\",\n              \"asset_session_nonce\",\n              \"route_role\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"confirmation_id\",\n              \"bridge_channel_id\",\n              \"method\",\n              \"request_hash\",\n              \"plan_hash\",\n              \"runtime_generation_id\"\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"handle_grant\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^hg_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"reusable\" },\n          \"audience\": {\n            \"required\": [\n              \"plugin_instance_id\",\n              \"active_fingerprint\",\n              \"runtime_generation_id\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"handle_id\",\n              \"method\",\n              \"resource_scope\"\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    },\n    {\n      \"if\": { \"properties\": { \"token_kind\": { \"const\": \"stream_ticket\" } }, \"required\": [\"token_kind\"] },\n      \"then\": {\n        \"properties\": {\n          \"token_id\": { \"pattern\": \"^st_[A-Za-z0-9_-]+$\" },\n          \"use\": { \"const\": \"single_use\" },\n          \"audience\": {\n            \"not\": { \"required\": [\"resource_scope\"] },\n            \"required\": [\n              \"plugin_id\",\n              \"plugin_instance_id\",\n              \"plugin_version\",\n              \"active_fingerprint\",\n              \"route_role\",\n              \"owner_session_hash\",\n              \"owner_user_hash\",\n              \"owner_env_hash\",\n              \"session_channel_id_hash\",\n              \"stream_id\",\n              \"operation_id\",\n              \"stream_direction\",\n              \"method\"\n            ],\n            \"allOf\": [\n              {\n                \"if\": {\n                  \"properties\": { \"route_role\": { \"const\": \"trusted_parent\" } },\n                  \"required\": [\"route_role\"]\n                },\n                \"then\": {\n                  \"required\": [\n                    \"surface_id\",\n                    \"surface_instance_id\",\n                    \"entry_path\",\n                    \"entry_sha256\",\n                    \"asset_session_nonce\",\n                    \"bridge_channel_id\",\n                    \"runtime_generation_id\"\n                  ]\n                }\n              }\n            ]\n          }\n        },\n        \"required\": [\"token_kind\", \"audience\", \"revision\", \"use\"]\n      }\n    }\n  ]\n}\n".as_bytes();
static CONTRACT_BODY_TRUSTED_TIME_EVIDENCE_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/trusted-time-evidence-v1.schema.json\",\n  \"title\": \"ReDevPlugin trusted time transparency evidence v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"schema_version\",\n    \"kind\",\n    \"leaf\",\n    \"leaf_sha256\",\n    \"integrated_time\",\n    \"signed_entry_timestamp\",\n    \"checkpoint\",\n    \"leaf_index\",\n    \"inclusion_proof\",\n    \"consistency_proof\"\n  ],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.trusted_time_evidence.v1\" },\n    \"kind\": { \"const\": \"transparency\" },\n    \"leaf\": { \"$ref\": \"#/$defs/leaf\" },\n    \"leaf_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"integrated_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n    \"signed_entry_timestamp\": { \"$ref\": \"#/$defs/signature\" },\n    \"checkpoint\": { \"$ref\": \"#/$defs/checkpoint\" },\n    \"leaf_index\": { \"type\": \"integer\", \"minimum\": 0, \"maximum\": 9007199254740990 },\n    \"inclusion_proof\": { \"$ref\": \"#/$defs/proof\" },\n    \"consistency_proof\": { \"$ref\": \"#/$defs/proof\" }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" },\n    \"leaf\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"source_id\", \"channel\", \"nonce\", \"minimum_time\", \"claimed_time\", \"request_sha256\", \"log_id\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.trusted_time_leaf.v1\" },\n        \"source_id\": { \"$ref\": \"#/$defs/id\" },\n        \"channel\": { \"$ref\": \"#/$defs/id\" },\n        \"nonce\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_-]{43}$\" },\n        \"minimum_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n        \"claimed_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n        \"request_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" }\n      }\n    },\n    \"signature\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9+/]{86}==$\" },\n    \"proof\": {\n      \"type\": \"array\",\n      \"maxItems\": 64,\n      \"items\": { \"$ref\": \"#/$defs/sha256\" }\n    },\n    \"checkpoint\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"schema_version\", \"log_id\", \"tree_size\", \"root_hash\", \"checkpoint_time\", \"key_id\", \"signature\"],\n      \"properties\": {\n        \"schema_version\": { \"const\": \"redevplugin.trusted_time_checkpoint.v1\" },\n        \"log_id\": { \"$ref\": \"#/$defs/id\" },\n        \"tree_size\": { \"type\": \"integer\", \"minimum\": 1, \"maximum\": 9007199254740991 },\n        \"root_hash\": { \"$ref\": \"#/$defs/sha256\" },\n        \"checkpoint_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n        \"key_id\": { \"$ref\": \"#/$defs/id\" },\n        \"signature\": { \"$ref\": \"#/$defs/signature\" }\n      }\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_TRUSTED_TIME_LEAF_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/trusted-time-leaf-v1.schema.json\",\n  \"title\": \"ReDevPlugin trusted time leaf v1\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"schema_version\", \"source_id\", \"channel\", \"nonce\", \"minimum_time\", \"claimed_time\", \"request_sha256\", \"log_id\"],\n  \"properties\": {\n    \"schema_version\": { \"const\": \"redevplugin.trusted_time_leaf.v1\" },\n    \"source_id\": { \"$ref\": \"#/$defs/id\" },\n    \"channel\": { \"$ref\": \"#/$defs/id\" },\n    \"nonce\": { \"type\": \"string\", \"pattern\": \"^[A-Za-z0-9_-]{43}$\" },\n    \"minimum_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n    \"claimed_time\": { \"type\": \"string\", \"format\": \"date-time\", \"maxLength\": 35 },\n    \"request_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"log_id\": { \"$ref\": \"#/$defs/id\" }\n  },\n  \"$defs\": {\n    \"id\": { \"type\": \"string\", \"pattern\": \"^[a-z][a-z0-9._-]{0,127}$\" },\n    \"sha256\": { \"type\": \"string\", \"pattern\": \"^[0-9a-f]{64}$\" }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_WASM_WORKER_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/wasm-worker-v2.schema.json\",\n  \"title\": \"ReDevPlugin WASM worker executable contract v2\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\"abi_version\", \"memory\", \"table\", \"exports\", \"imports\"],\n  \"properties\": {\n    \"abi_version\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n    \"memory\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"count\", \"export\", \"memory64\", \"shared\", \"page_size_bytes\"],\n      \"properties\": {\n        \"count\": { \"const\": 1 },\n        \"export\": { \"const\": \"memory\" },\n        \"memory64\": { \"const\": false },\n        \"shared\": { \"const\": false },\n        \"page_size_bytes\": { \"const\": 65536 }\n      }\n    },\n    \"table\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"max_count\", \"max_elements\", \"table64\", \"shared\"],\n      \"properties\": {\n        \"max_count\": { \"const\": 1 },\n        \"max_elements\": { \"const\": 65536 },\n        \"table64\": { \"const\": false },\n        \"shared\": { \"const\": false }\n      }\n    },\n    \"exports\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"alloc\", \"dealloc\", \"invoke\"],\n      \"properties\": {\n        \"alloc\": {\n          \"$ref\": \"#/$defs/alloc_function\"\n        },\n        \"dealloc\": {\n          \"$ref\": \"#/$defs/dealloc_function\"\n        },\n        \"invoke\": {\n          \"$ref\": \"#/$defs/invoke_function\"\n        }\n      }\n    },\n    \"imports\": {\n      \"type\": \"array\",\n      \"uniqueItems\": true,\n      \"items\": { \"$ref\": \"#/$defs/hostcall_import\" }\n    }\n  },\n  \"$defs\": {\n    \"alloc_function\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"params\", \"results\"],\n      \"properties\": {\n        \"name\": { \"const\": \"redevplugin_worker_alloc\" },\n        \"params\": { \"const\": [\"i32\"] },\n        \"results\": { \"const\": [\"i32\"] }\n      }\n    },\n    \"dealloc_function\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"params\", \"results\"],\n      \"properties\": {\n        \"name\": { \"const\": \"redevplugin_worker_dealloc\" },\n        \"params\": { \"const\": [\"i32\", \"i32\"] },\n        \"results\": { \"const\": [] }\n      }\n    },\n    \"invoke_function\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"name\", \"params\", \"results\"],\n      \"properties\": {\n        \"name\": { \"const\": \"redevplugin_worker_invoke\" },\n        \"params\": { \"const\": [\"i32\", \"i32\"] },\n        \"results\": { \"const\": [\"i64\"] }\n      }\n    },\n    \"hostcall_import\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"required\": [\"module\", \"name\", \"params\", \"results\"],\n      \"properties\": {\n        \"module\": { \"enum\": [\"redevplugin.storage\", \"redevplugin.network\"] },\n        \"name\": { \"enum\": [\"files\", \"kv\", \"sqlite\", \"execute\"] },\n        \"params\": { \"const\": [\"i32\", \"i32\", \"i32\", \"i32\"] },\n        \"results\": { \"const\": [\"i32\"] }\n      },\n      \"allOf\": [\n        {\n          \"if\": { \"properties\": { \"module\": { \"const\": \"redevplugin.storage\" } }, \"required\": [\"module\"] },\n          \"then\": { \"properties\": { \"name\": { \"enum\": [\"files\", \"kv\", \"sqlite\"] } } },\n          \"else\": { \"properties\": { \"name\": { \"const\": \"execute\" } } }\n        }\n      ]\n    }\n  }\n}\n".as_bytes();
static CONTRACT_BODY_WORKER_INVOCATION_SCHEMA: &[u8] = "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"$id\": \"https://schemas.redevplugin.dev/plugin/worker-invocation-v3.schema.json\",\n  \"title\": \"ReDevPlugin worker invocation payload v3\",\n  \"type\": \"object\",\n  \"additionalProperties\": false,\n  \"required\": [\n    \"plugin_id\",\n    \"plugin_instance_id\",\n    \"active_fingerprint\",\n    \"runtime_instance_id\",\n    \"runtime_generation_id\",\n    \"package_hash\",\n    \"worker_id\",\n    \"worker_mode\",\n    \"worker_scope\",\n    \"artifact\",\n    \"artifact_sha256\",\n    \"abi\",\n    \"method\",\n    \"effect\",\n    \"execution\",\n    \"audit_correlation_id\",\n    \"owner_env_hash\",\n    \"broker_access\",\n    \"broker_access_sha256\",\n    \"params_sha256\",\n    \"params\"\n  ],\n  \"properties\": {\n    \"plugin_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"plugin_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"active_fingerprint\": { \"type\": \"string\", \"minLength\": 1 },\n    \"runtime_instance_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"runtime_generation_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"package_hash\": { \"$ref\": \"#/$defs/sha256\" },\n    \"worker_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"worker_mode\": { \"const\": \"job\" },\n    \"worker_scope\": { \"type\": \"string\", \"minLength\": 1 },\n    \"artifact\": {\n      \"type\": \"string\",\n      \"minLength\": 1,\n      \"pattern\": \"^workers/[A-Za-z0-9._/-]+\\\\.wasm$\"\n    },\n    \"artifact_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"abi\": { \"const\": \"redevplugin-wasm-worker-v2\" },\n    \"method\": { \"type\": \"string\", \"minLength\": 1 },\n    \"effect\": { \"enum\": [\"read\", \"write\", \"execute\", \"delete\", \"admin\"] },\n    \"execution\": { \"enum\": [\"sync\", \"operation\", \"subscription\"] },\n    \"operation_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"stream_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"audit_correlation_id\": { \"type\": \"string\", \"minLength\": 1 },\n    \"params_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"surface_instance_id\": { \"type\": \"string\" },\n    \"owner_session_hash\": { \"type\": \"string\" },\n    \"owner_user_hash\": { \"type\": \"string\" },\n    \"owner_env_hash\": { \"type\": \"string\", \"minLength\": 1 },\n    \"session_channel_id_hash\": { \"type\": \"string\" },\n    \"bridge_channel_id\": { \"type\": \"string\" },\n    \"storage_handle_grants\": {\n      \"type\": \"object\",\n      \"propertyNames\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n      \"additionalProperties\": { \"type\": \"string\", \"minLength\": 1 }\n    },\n    \"broker_access\": { \"$ref\": \"#/$defs/broker_access\" },\n    \"broker_access_sha256\": { \"$ref\": \"#/$defs/sha256\" },\n    \"params\": {\n      \"type\": \"object\",\n      \"additionalProperties\": true\n    }\n  },\n  \"$defs\": {\n    \"broker_access\": {\n      \"type\": \"object\",\n      \"additionalProperties\": false,\n      \"properties\": {\n        \"storage\": {\n          \"type\": \"array\",\n          \"uniqueItems\": true,\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"store_id\", \"scope\", \"operations\"],\n            \"properties\": {\n              \"store_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n              \"scope\": { \"enum\": [\"user\", \"environment\"] },\n              \"operations\": {\n                \"type\": \"array\",\n                \"minItems\": 1,\n                \"uniqueItems\": true,\n                \"items\": { \"enum\": [\"read\", \"write\", \"delete\", \"list\", \"get\", \"put\", \"query\", \"exec\"] }\n              }\n            }\n          }\n        },\n        \"network\": {\n          \"type\": \"array\",\n          \"uniqueItems\": true,\n          \"items\": {\n            \"type\": \"object\",\n            \"additionalProperties\": false,\n            \"required\": [\"connector_id\", \"transport\", \"scope\", \"operations\"],\n            \"properties\": {\n              \"connector_id\": { \"type\": \"string\", \"minLength\": 1, \"maxLength\": 128 },\n              \"transport\": { \"enum\": [\"http\", \"websocket\", \"tcp\", \"udp\"] },\n              \"scope\": { \"enum\": [\"user\", \"environment\"] },\n              \"operations\": {\n                \"type\": \"array\",\n                \"minItems\": 1,\n                \"uniqueItems\": true,\n                \"items\": { \"enum\": [\"http\", \"http_stream\", \"websocket_round_trip\", \"tcp_round_trip\", \"udp_round_trip\"] }\n              },\n              \"http_methods\": {\n                \"type\": \"array\",\n                \"minItems\": 1,\n                \"uniqueItems\": true,\n                \"items\": { \"enum\": [\"GET\", \"HEAD\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\"] }\n              }\n            },\n            \"allOf\": [\n              {\n                \"if\": { \"properties\": { \"transport\": { \"const\": \"http\" } }, \"required\": [\"transport\"] },\n                \"then\": { \"required\": [\"http_methods\"] },\n                \"else\": { \"not\": { \"required\": [\"http_methods\"] } }\n              }\n            ]\n          }\n        }\n      }\n    },\n    \"sha256\": {\n      \"type\": \"string\",\n      \"pattern\": \"^sha256:[a-f0-9]{64}$\"\n    }\n  },\n  \"allOf\": [\n    {\n      \"if\": { \"properties\": { \"execution\": { \"const\": \"sync\" } }, \"required\": [\"execution\"] },\n      \"then\": { \"not\": { \"anyOf\": [{ \"required\": [\"operation_id\"] }, { \"required\": [\"stream_id\"] }] } }\n    },\n    {\n      \"if\": { \"properties\": { \"execution\": { \"const\": \"operation\" } }, \"required\": [\"execution\"] },\n      \"then\": { \"required\": [\"operation_id\"], \"not\": { \"required\": [\"stream_id\"] } }\n    },\n    {\n      \"if\": { \"properties\": { \"execution\": { \"const\": \"subscription\" } }, \"required\": [\"execution\"] },\n      \"then\": { \"required\": [\"operation_id\", \"stream_id\"] }\n    }\n  ]\n}\n".as_bytes();

pub(crate) static ARTIFACTS: [Contract; 49] = [
    Contract::new(
        ContractId::COMPATIBILITY_MANIFEST_SCHEMA,
        "compatibility-manifest-v8",
        "a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79",
        CONTRACT_BODY_COMPATIBILITY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::CONTRACT_REGISTRY_SCHEMA,
        "contract-registry-v2",
        "d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac",
        CONTRACT_BODY_CONTRACT_REGISTRY_SCHEMA,
    ),
    Contract::new(
        ContractId::ERROR_CODES_SCHEMA,
        "error-codes-v6",
        "094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28",
        CONTRACT_BODY_ERROR_CODES_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_COMPATIBILITY_SCHEMA,
        "host-capability-compatibility-v1",
        "361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de",
        CONTRACT_BODY_HOST_CAPABILITY_COMPATIBILITY_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_CONTRACT_SCHEMA,
        "host-capability-contract-v1",
        "0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485",
        CONTRACT_BODY_HOST_CAPABILITY_CONTRACT_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_MANIFEST_SCHEMA,
        "host-capability-manifest-v1",
        "5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e",
        CONTRACT_BODY_HOST_CAPABILITY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_NOTICES_SCHEMA,
        "host-capability-notices-v1",
        "6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948",
        CONTRACT_BODY_HOST_CAPABILITY_NOTICES_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_PIN_SCHEMA,
        "host-capability-pin-v1",
        "20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338",
        CONTRACT_BODY_HOST_CAPABILITY_PIN_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_SIGNATURE_SCHEMA,
        "host-capability-signature-v1",
        "88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e",
        CONTRACT_BODY_HOST_CAPABILITY_SIGNATURE_SCHEMA,
    ),
    Contract::new(
        ContractId::IFRAME_BRIDGE_SCHEMA,
        "bridge-v5",
        "ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da",
        CONTRACT_BODY_IFRAME_BRIDGE_SCHEMA,
    ),
    Contract::new(
        ContractId::MANIFEST_SCHEMA,
        "manifest-v5",
        "9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7",
        CONTRACT_BODY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::NETWORK_GRANT_SCHEMA,
        "network-grant-v2",
        "5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc",
        CONTRACT_BODY_NETWORK_GRANT_SCHEMA,
    ),
    Contract::new(
        ContractId::OPAQUE_SURFACE_DOCUMENT_SCHEMA,
        "opaque-surface-document-v3",
        "63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450",
        CONTRACT_BODY_OPAQUE_SURFACE_DOCUMENT_SCHEMA,
    ),
    Contract::new(
        ContractId::OPAQUE_SURFACE_TRANSPORT_SCHEMA,
        "opaque-surface-transport-v4",
        "70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2",
        CONTRACT_BODY_OPAQUE_SURFACE_TRANSPORT_SCHEMA,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_INVENTORY_REGISTRY,
        "owner-scope-inventory-registry-v1",
        "92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217",
        CONTRACT_BODY_OWNER_SCOPE_INVENTORY_REGISTRY,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_INVENTORY_SCHEMA,
        "owner-scope-inventory-v1",
        "972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254",
        CONTRACT_BODY_OWNER_SCOPE_INVENTORY_SCHEMA,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_MIGRATION_SCHEMA,
        "owner-scope-migration-v1",
        "e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993",
        CONTRACT_BODY_OWNER_SCOPE_MIGRATION_SCHEMA,
    ),
    Contract::new(
        ContractId::PACKAGE_SIGNATURE_SCHEMA,
        "package-signature-v1",
        "13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284",
        CONTRACT_BODY_PACKAGE_SIGNATURE_SCHEMA,
    ),
    Contract::new(
        ContractId::PERFORMANCE_CONTRACT,
        "performance-contract-v3",
        "a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b",
        CONTRACT_BODY_PERFORMANCE_CONTRACT,
    ),
    Contract::new(
        ContractId::PERFORMANCE_EVIDENCE_SCHEMA,
        "performance-evidence-v3",
        "a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326",
        CONTRACT_BODY_PERFORMANCE_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::PLATFORM_PACKAGE_PUBLICATION_SCHEMA,
        "platform-package-publication-v1",
        "20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0",
        CONTRACT_BODY_PLATFORM_PACKAGE_PUBLICATION_SCHEMA,
    ),
    Contract::new(
        ContractId::PLATFORM_PACKAGE_SET_SCHEMA,
        "platform-package-set-v1",
        "4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796",
        CONTRACT_BODY_PLATFORM_PACKAGE_SET_SCHEMA,
    ),
    Contract::new(
        ContractId::PLUGIN_PLATFORM_OPENAPI,
        "plugin-platform-v8",
        "290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac",
        CONTRACT_BODY_PLUGIN_PLATFORM_OPENAPI,
    ),
    Contract::new(
        ContractId::PROCESS_CONTAINMENT_SCHEMA,
        "process-containment-v1",
        "930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc",
        CONTRACT_BODY_PROCESS_CONTAINMENT_SCHEMA,
    ),
    Contract::new(
        ContractId::QUARANTINE_CLEANUP_SCHEMA,
        "quarantine-cleanup-v1",
        "0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1",
        CONTRACT_BODY_QUARANTINE_CLEANUP_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_METADATA_SCHEMA,
        "release-metadata-v5",
        "255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a",
        CONTRACT_BODY_RELEASE_METADATA_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_REVOCATION_POINTER_SCHEMA,
        "release-revocation-pointer-v1",
        "a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e",
        CONTRACT_BODY_RELEASE_REVOCATION_POINTER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_REVOCATION_SCHEMA,
        "release-revocation-v2",
        "c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4",
        CONTRACT_BODY_RELEASE_REVOCATION_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_ROOT_DELEGATION_SCHEMA,
        "release-root-delegation-v1",
        "c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825",
        CONTRACT_BODY_RELEASE_ROOT_DELEGATION_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNATURE_ENVELOPE_SCHEMA,
        "release-signature-envelope-v1",
        "7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29",
        CONTRACT_BODY_RELEASE_SIGNATURE_ENVELOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA,
        "release-signing-ledger-evidence-v1",
        "9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA,
        "release-signing-ledger-receipt-v1",
        "29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_SCHEMA,
        "release-signing-ledger-v1",
        "0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_SUBJECT_SCHEMA,
        "release-signing-subject-v1",
        "876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e",
        CONTRACT_BODY_RELEASE_SIGNING_SUBJECT_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SOURCE_POLICY_POINTER_SCHEMA,
        "release-source-policy-pointer-v1",
        "1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c",
        CONTRACT_BODY_RELEASE_SOURCE_POLICY_POINTER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SOURCE_POLICY_SCHEMA,
        "release-source-policy-v2",
        "6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237",
        CONTRACT_BODY_RELEASE_SOURCE_POLICY_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_TRUST_STATE_SCHEMA,
        "release-trust-state-v1",
        "19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2",
        CONTRACT_BODY_RELEASE_TRUST_STATE_SCHEMA,
    ),
    Contract::new(
        ContractId::RESOURCE_SCOPE_SCHEMA,
        "resource-scope-v1",
        "e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f",
        CONTRACT_BODY_RESOURCE_SCOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_ADMISSION_SCHEMA,
        "runtime-admission-v1",
        "bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb",
        CONTRACT_BODY_RUNTIME_ADMISSION_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_DESCRIPTOR_SCHEMA,
        "runtime-descriptor-v2",
        "2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351",
        CONTRACT_BODY_RUNTIME_DESCRIPTOR_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_EXEC_JOURNAL_SCHEMA,
        "runtime-exec-journal-v1",
        "2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2",
        CONTRACT_BODY_RUNTIME_EXEC_JOURNAL_SCHEMA,
    ),
    Contract::new(
        ContractId::RUST_IPC_SCHEMA,
        "rust-ipc-v6",
        "9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f",
        CONTRACT_BODY_RUST_IPC_SCHEMA,
    ),
    Contract::new(
        ContractId::SESSION_SCOPE_SCHEMA,
        "session-scope-v1",
        "3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e",
        CONTRACT_BODY_SESSION_SCOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::TARGET_CLASSIFIER_FIXTURE,
        "target-classifier-v2",
        "ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1",
        CONTRACT_BODY_TARGET_CLASSIFIER_FIXTURE,
    ),
    Contract::new(
        ContractId::TOKEN_TICKET_SCHEMA,
        "token-ticket-v4",
        "5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1",
        CONTRACT_BODY_TOKEN_TICKET_SCHEMA,
    ),
    Contract::new(
        ContractId::TRUSTED_TIME_EVIDENCE_SCHEMA,
        "trusted-time-evidence-v1",
        "4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38",
        CONTRACT_BODY_TRUSTED_TIME_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::TRUSTED_TIME_LEAF_SCHEMA,
        "trusted-time-leaf-v1",
        "1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb",
        CONTRACT_BODY_TRUSTED_TIME_LEAF_SCHEMA,
    ),
    Contract::new(
        ContractId::WASM_WORKER_SCHEMA,
        "redevplugin-wasm-worker-v2",
        "00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902",
        CONTRACT_BODY_WASM_WORKER_SCHEMA,
    ),
    Contract::new(
        ContractId::WORKER_INVOCATION_SCHEMA,
        "worker-invocation-v3",
        "f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927",
        CONTRACT_BODY_WORKER_INVOCATION_SCHEMA,
    ),
];

pub(crate) static ALL: [Contract; 50] = [
    Contract::new(
        ContractId::COMPATIBILITY_MANIFEST_SCHEMA,
        "compatibility-manifest-v8",
        "a1831e0ae9a1b47d92e7ad9879b1ca4e3510ebc212b87360595b672e8b87bc79",
        CONTRACT_BODY_COMPATIBILITY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::CONTRACT_REGISTRY,
        "contract-registry-v2",
        "00428101616f3e13a4e4b99f7197dff5660fa41f78a6a4dc9f942caef11b979a",
        CONTRACT_BODY_CONTRACT_REGISTRY,
    ),
    Contract::new(
        ContractId::CONTRACT_REGISTRY_SCHEMA,
        "contract-registry-v2",
        "d516b3565158ac1b0d5e9f86b91b13ac19321ab3ff54468be41951b68d7085ac",
        CONTRACT_BODY_CONTRACT_REGISTRY_SCHEMA,
    ),
    Contract::new(
        ContractId::ERROR_CODES_SCHEMA,
        "error-codes-v6",
        "094cb980156c17af4866942b51e6a1032ea7d1ae0675b329d59a765223ccda28",
        CONTRACT_BODY_ERROR_CODES_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_COMPATIBILITY_SCHEMA,
        "host-capability-compatibility-v1",
        "361ebbf7009aeb66c763ecde46427b17b6cf7d2307c01886c5987a1f4f1762de",
        CONTRACT_BODY_HOST_CAPABILITY_COMPATIBILITY_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_CONTRACT_SCHEMA,
        "host-capability-contract-v1",
        "0a653e36d44104f1d16b06ee424648086c146f23c907b176bdf470ae73025485",
        CONTRACT_BODY_HOST_CAPABILITY_CONTRACT_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_MANIFEST_SCHEMA,
        "host-capability-manifest-v1",
        "5f13a8e5f918378b9cba9fdc133a9a75ba3a8311c30cb6a02ca0aba09035110e",
        CONTRACT_BODY_HOST_CAPABILITY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_NOTICES_SCHEMA,
        "host-capability-notices-v1",
        "6affd5d0ae90239f6fd08cbeddae4eef393efa2838c9e4935874ba3dc0e05948",
        CONTRACT_BODY_HOST_CAPABILITY_NOTICES_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_PIN_SCHEMA,
        "host-capability-pin-v1",
        "20526a5934f0d85a3db7882492487266f09de5bcd176e2c7936f05d0b7fe0338",
        CONTRACT_BODY_HOST_CAPABILITY_PIN_SCHEMA,
    ),
    Contract::new(
        ContractId::HOST_CAPABILITY_SIGNATURE_SCHEMA,
        "host-capability-signature-v1",
        "88cbc1d63afb7e289ca4f8b7c76f702b8d20156f7722c1b71f3ab9138a240a5e",
        CONTRACT_BODY_HOST_CAPABILITY_SIGNATURE_SCHEMA,
    ),
    Contract::new(
        ContractId::IFRAME_BRIDGE_SCHEMA,
        "bridge-v5",
        "ad8ccc7e1900ecb871432f07296dd681ae6faea9377e52f5ddca90300c04f4da",
        CONTRACT_BODY_IFRAME_BRIDGE_SCHEMA,
    ),
    Contract::new(
        ContractId::MANIFEST_SCHEMA,
        "manifest-v5",
        "9695f6163aa539b9e3a933367c98850257c6d7bb8d61b36fd5f83b3ab61746f7",
        CONTRACT_BODY_MANIFEST_SCHEMA,
    ),
    Contract::new(
        ContractId::NETWORK_GRANT_SCHEMA,
        "network-grant-v2",
        "5fc1cfc3469a992e551fd392fab982abb6f95e456a1cb768ceca137f7c693abc",
        CONTRACT_BODY_NETWORK_GRANT_SCHEMA,
    ),
    Contract::new(
        ContractId::OPAQUE_SURFACE_DOCUMENT_SCHEMA,
        "opaque-surface-document-v3",
        "63419ff5b5a8890e14f97ca29aaae175b93daff61d4567c5bdff7f6e6a9e7450",
        CONTRACT_BODY_OPAQUE_SURFACE_DOCUMENT_SCHEMA,
    ),
    Contract::new(
        ContractId::OPAQUE_SURFACE_TRANSPORT_SCHEMA,
        "opaque-surface-transport-v4",
        "70a32dc8bf281cea2c92492c466fd477070c62156a3f593d45eb460cde62dca2",
        CONTRACT_BODY_OPAQUE_SURFACE_TRANSPORT_SCHEMA,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_INVENTORY_REGISTRY,
        "owner-scope-inventory-registry-v1",
        "92a2d6ed3a9038e95285faa108e2186cf9d0df343854741c551f8c4039f91217",
        CONTRACT_BODY_OWNER_SCOPE_INVENTORY_REGISTRY,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_INVENTORY_SCHEMA,
        "owner-scope-inventory-v1",
        "972e4fe3cc74339c211ba8a50951ad0f4ae4265d3d34b20f03d0e4888638e254",
        CONTRACT_BODY_OWNER_SCOPE_INVENTORY_SCHEMA,
    ),
    Contract::new(
        ContractId::OWNER_SCOPE_MIGRATION_SCHEMA,
        "owner-scope-migration-v1",
        "e73443813e19e4cfb05748eb75d5cf04f43db3bed9d2be0c893c13bda88a5993",
        CONTRACT_BODY_OWNER_SCOPE_MIGRATION_SCHEMA,
    ),
    Contract::new(
        ContractId::PACKAGE_SIGNATURE_SCHEMA,
        "package-signature-v1",
        "13951c0f6831ba28647774368c76a817868aeb7984628e2cf3dc4ad1b54f8284",
        CONTRACT_BODY_PACKAGE_SIGNATURE_SCHEMA,
    ),
    Contract::new(
        ContractId::PERFORMANCE_CONTRACT,
        "performance-contract-v3",
        "a4e1a099dc16f2b0a4d6bdc5fdf8f6ce622948ffec40f70bfc2743286a2b816b",
        CONTRACT_BODY_PERFORMANCE_CONTRACT,
    ),
    Contract::new(
        ContractId::PERFORMANCE_EVIDENCE_SCHEMA,
        "performance-evidence-v3",
        "a2f5e94071bb09a9327fc55ad3f6c39052b01c3e54cceb8b974dc244667a0326",
        CONTRACT_BODY_PERFORMANCE_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::PLATFORM_PACKAGE_PUBLICATION_SCHEMA,
        "platform-package-publication-v1",
        "20450b516c34d5a122020f4064ddfa03ffcb97ffea661e0868cd09760b3f08b0",
        CONTRACT_BODY_PLATFORM_PACKAGE_PUBLICATION_SCHEMA,
    ),
    Contract::new(
        ContractId::PLATFORM_PACKAGE_SET_SCHEMA,
        "platform-package-set-v1",
        "4d9979f5205ec047895b64c995312c588d998bb1c1448f6c9c559f1b7ab0d796",
        CONTRACT_BODY_PLATFORM_PACKAGE_SET_SCHEMA,
    ),
    Contract::new(
        ContractId::PLUGIN_PLATFORM_OPENAPI,
        "plugin-platform-v8",
        "290883ff79b74badbf9f6feddb4dfbef820a4ef4622a7e3fca815e3abb2c4eac",
        CONTRACT_BODY_PLUGIN_PLATFORM_OPENAPI,
    ),
    Contract::new(
        ContractId::PROCESS_CONTAINMENT_SCHEMA,
        "process-containment-v1",
        "930ea44b1f62361706e994649e84f62af0a6418b77a661ae9bf9c10f1398e3fc",
        CONTRACT_BODY_PROCESS_CONTAINMENT_SCHEMA,
    ),
    Contract::new(
        ContractId::QUARANTINE_CLEANUP_SCHEMA,
        "quarantine-cleanup-v1",
        "0aced01a8d409953d5075a799ac273cae79e285ac82debe93ac4d8b706571ad1",
        CONTRACT_BODY_QUARANTINE_CLEANUP_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_METADATA_SCHEMA,
        "release-metadata-v5",
        "255ef3deb7d2758a43e69e533a08aa28106f8edc2e7385ab0aec0d50c1ef3d7a",
        CONTRACT_BODY_RELEASE_METADATA_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_REVOCATION_POINTER_SCHEMA,
        "release-revocation-pointer-v1",
        "a9b7b64cb2dbf89500f0d191a6b2b9ab42eb806a452eb8338895a48ec7d7551e",
        CONTRACT_BODY_RELEASE_REVOCATION_POINTER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_REVOCATION_SCHEMA,
        "release-revocation-v2",
        "c3b40c05bc0dea422a272ee62ca45d0efb6456278b0707c5a12f39b004b84cb4",
        CONTRACT_BODY_RELEASE_REVOCATION_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_ROOT_DELEGATION_SCHEMA,
        "release-root-delegation-v1",
        "c1adbb13eaeeca145d5ee787ff43777e60a5f329e460d20b8db358e4f5fc4825",
        CONTRACT_BODY_RELEASE_ROOT_DELEGATION_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNATURE_ENVELOPE_SCHEMA,
        "release-signature-envelope-v1",
        "7df9afd22bfdebfa89dc3bdb46ecdbe22a91ecce35fa46c492dd9795c66fae29",
        CONTRACT_BODY_RELEASE_SIGNATURE_ENVELOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA,
        "release-signing-ledger-evidence-v1",
        "9ab8b7f65dedcd119d578debb4f6ff97fc35f4c7ac95c0e5435f8b0959bc1a5c",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA,
        "release-signing-ledger-receipt-v1",
        "29210cfefd967017c5c74bcf8489bd50511c5c9f36d17b0200056ccb90c30561",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_LEDGER_SCHEMA,
        "release-signing-ledger-v1",
        "0c72b30bfd6b857b9809e48e1b7eaaeb7134d5afd6a935aa8373465054403765",
        CONTRACT_BODY_RELEASE_SIGNING_LEDGER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SIGNING_SUBJECT_SCHEMA,
        "release-signing-subject-v1",
        "876b1459824f90042bd141e96bfea4633333bdf2a227e15b6e25c72db1179c8e",
        CONTRACT_BODY_RELEASE_SIGNING_SUBJECT_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SOURCE_POLICY_POINTER_SCHEMA,
        "release-source-policy-pointer-v1",
        "1a78cc3897ffbcdb605d2e9265d765207a4647d3f53fa5736aec65bf5f54e81c",
        CONTRACT_BODY_RELEASE_SOURCE_POLICY_POINTER_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_SOURCE_POLICY_SCHEMA,
        "release-source-policy-v2",
        "6a5a5eab317a86beea925a611ca8a7a2d937547c039ce147b5993f69a5611237",
        CONTRACT_BODY_RELEASE_SOURCE_POLICY_SCHEMA,
    ),
    Contract::new(
        ContractId::RELEASE_TRUST_STATE_SCHEMA,
        "release-trust-state-v1",
        "19ffa182932a22401a33ee4c9921e957c67895c2d8b041c9a27ee3530bdfb2d2",
        CONTRACT_BODY_RELEASE_TRUST_STATE_SCHEMA,
    ),
    Contract::new(
        ContractId::RESOURCE_SCOPE_SCHEMA,
        "resource-scope-v1",
        "e6021bd576c7220ad5536645a7ad8e57ee7aeb9901c31a89444fa6b695d8dc6f",
        CONTRACT_BODY_RESOURCE_SCOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_ADMISSION_SCHEMA,
        "runtime-admission-v1",
        "bee7b149876447d663a4099dbd71e71fa97f8ff80ddf4e12cbfba951a47c4beb",
        CONTRACT_BODY_RUNTIME_ADMISSION_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_DESCRIPTOR_SCHEMA,
        "runtime-descriptor-v2",
        "2ba59f6fb70d4ad757f60aca5541f4a44886542525e5bf76c393cd2368188351",
        CONTRACT_BODY_RUNTIME_DESCRIPTOR_SCHEMA,
    ),
    Contract::new(
        ContractId::RUNTIME_EXEC_JOURNAL_SCHEMA,
        "runtime-exec-journal-v1",
        "2bddbba383843b8ebc1554009909f0bb25e98616be763826a697cb0f408870d2",
        CONTRACT_BODY_RUNTIME_EXEC_JOURNAL_SCHEMA,
    ),
    Contract::new(
        ContractId::RUST_IPC_SCHEMA,
        "rust-ipc-v6",
        "9814ca091ac2e4e8435c1ab553e248e9d2e792de93ce9fd27bd030486774837f",
        CONTRACT_BODY_RUST_IPC_SCHEMA,
    ),
    Contract::new(
        ContractId::SESSION_SCOPE_SCHEMA,
        "session-scope-v1",
        "3df0084264f0aff9fe2261c237cea439adb5cdc2534bfaaa0488d5992d4a7d2e",
        CONTRACT_BODY_SESSION_SCOPE_SCHEMA,
    ),
    Contract::new(
        ContractId::TARGET_CLASSIFIER_FIXTURE,
        "target-classifier-v2",
        "ae7336cce77a2e820f96f1cc309b93f8442c932dcebec25e3890d31cd098e2d1",
        CONTRACT_BODY_TARGET_CLASSIFIER_FIXTURE,
    ),
    Contract::new(
        ContractId::TOKEN_TICKET_SCHEMA,
        "token-ticket-v4",
        "5cf365b5b52a331ac0d3ad35a98be3c2ce668804ae88fdeaf9679a44db14feb1",
        CONTRACT_BODY_TOKEN_TICKET_SCHEMA,
    ),
    Contract::new(
        ContractId::TRUSTED_TIME_EVIDENCE_SCHEMA,
        "trusted-time-evidence-v1",
        "4398cbd2a3eea42a85008ee16a69d7adb265673e6749b1f13a4f1610f36e5e38",
        CONTRACT_BODY_TRUSTED_TIME_EVIDENCE_SCHEMA,
    ),
    Contract::new(
        ContractId::TRUSTED_TIME_LEAF_SCHEMA,
        "trusted-time-leaf-v1",
        "1c25eb0040800eef145aa2bb4c0e1ae197ae584d365e9595ab89037e26fe5ddb",
        CONTRACT_BODY_TRUSTED_TIME_LEAF_SCHEMA,
    ),
    Contract::new(
        ContractId::WASM_WORKER_SCHEMA,
        "redevplugin-wasm-worker-v2",
        "00bf123f3a9ed932de4b71c180e2a5c34af0f82050defb271fedec42cf217902",
        CONTRACT_BODY_WASM_WORKER_SCHEMA,
    ),
    Contract::new(
        ContractId::WORKER_INVOCATION_SCHEMA,
        "worker-invocation-v3",
        "f08af491cbf5e7b71d1aeafbeac9ae581ee5fc3bcb76184daec369f94bab3927",
        CONTRACT_BODY_WORKER_INVOCATION_SCHEMA,
    ),
];

pub(crate) const REGISTRY_CONTRACT_INDEX: usize = 1;

pub(crate) fn get(id: ContractId) -> &'static Contract {
    match id {
        ContractId::COMPATIBILITY_MANIFEST_SCHEMA => &ALL[0],
        ContractId::CONTRACT_REGISTRY => &ALL[1],
        ContractId::CONTRACT_REGISTRY_SCHEMA => &ALL[2],
        ContractId::ERROR_CODES_SCHEMA => &ALL[3],
        ContractId::HOST_CAPABILITY_COMPATIBILITY_SCHEMA => &ALL[4],
        ContractId::HOST_CAPABILITY_CONTRACT_SCHEMA => &ALL[5],
        ContractId::HOST_CAPABILITY_MANIFEST_SCHEMA => &ALL[6],
        ContractId::HOST_CAPABILITY_NOTICES_SCHEMA => &ALL[7],
        ContractId::HOST_CAPABILITY_PIN_SCHEMA => &ALL[8],
        ContractId::HOST_CAPABILITY_SIGNATURE_SCHEMA => &ALL[9],
        ContractId::IFRAME_BRIDGE_SCHEMA => &ALL[10],
        ContractId::MANIFEST_SCHEMA => &ALL[11],
        ContractId::NETWORK_GRANT_SCHEMA => &ALL[12],
        ContractId::OPAQUE_SURFACE_DOCUMENT_SCHEMA => &ALL[13],
        ContractId::OPAQUE_SURFACE_TRANSPORT_SCHEMA => &ALL[14],
        ContractId::OWNER_SCOPE_INVENTORY_REGISTRY => &ALL[15],
        ContractId::OWNER_SCOPE_INVENTORY_SCHEMA => &ALL[16],
        ContractId::OWNER_SCOPE_MIGRATION_SCHEMA => &ALL[17],
        ContractId::PACKAGE_SIGNATURE_SCHEMA => &ALL[18],
        ContractId::PERFORMANCE_CONTRACT => &ALL[19],
        ContractId::PERFORMANCE_EVIDENCE_SCHEMA => &ALL[20],
        ContractId::PLATFORM_PACKAGE_PUBLICATION_SCHEMA => &ALL[21],
        ContractId::PLATFORM_PACKAGE_SET_SCHEMA => &ALL[22],
        ContractId::PLUGIN_PLATFORM_OPENAPI => &ALL[23],
        ContractId::PROCESS_CONTAINMENT_SCHEMA => &ALL[24],
        ContractId::QUARANTINE_CLEANUP_SCHEMA => &ALL[25],
        ContractId::RELEASE_METADATA_SCHEMA => &ALL[26],
        ContractId::RELEASE_REVOCATION_POINTER_SCHEMA => &ALL[27],
        ContractId::RELEASE_REVOCATION_SCHEMA => &ALL[28],
        ContractId::RELEASE_ROOT_DELEGATION_SCHEMA => &ALL[29],
        ContractId::RELEASE_SIGNATURE_ENVELOPE_SCHEMA => &ALL[30],
        ContractId::RELEASE_SIGNING_LEDGER_EVIDENCE_SCHEMA => &ALL[31],
        ContractId::RELEASE_SIGNING_LEDGER_RECEIPT_SCHEMA => &ALL[32],
        ContractId::RELEASE_SIGNING_LEDGER_SCHEMA => &ALL[33],
        ContractId::RELEASE_SIGNING_SUBJECT_SCHEMA => &ALL[34],
        ContractId::RELEASE_SOURCE_POLICY_POINTER_SCHEMA => &ALL[35],
        ContractId::RELEASE_SOURCE_POLICY_SCHEMA => &ALL[36],
        ContractId::RELEASE_TRUST_STATE_SCHEMA => &ALL[37],
        ContractId::RESOURCE_SCOPE_SCHEMA => &ALL[38],
        ContractId::RUNTIME_ADMISSION_SCHEMA => &ALL[39],
        ContractId::RUNTIME_DESCRIPTOR_SCHEMA => &ALL[40],
        ContractId::RUNTIME_EXEC_JOURNAL_SCHEMA => &ALL[41],
        ContractId::RUST_IPC_SCHEMA => &ALL[42],
        ContractId::SESSION_SCOPE_SCHEMA => &ALL[43],
        ContractId::TARGET_CLASSIFIER_FIXTURE => &ALL[44],
        ContractId::TOKEN_TICKET_SCHEMA => &ALL[45],
        ContractId::TRUSTED_TIME_EVIDENCE_SCHEMA => &ALL[46],
        ContractId::TRUSTED_TIME_LEAF_SCHEMA => &ALL[47],
        ContractId::WASM_WORKER_SCHEMA => &ALL[48],
        ContractId::WORKER_INVOCATION_SCHEMA => &ALL[49],
        _ => unreachable!("ContractId can only contain generated values"),
    }
}

static NPM_PACKAGES: [NpmPackageCoordinate; 2] = [
    NpmPackageCoordinate {
        name: "@floegence/redevplugin-contracts",
        version: "0.6.5",
    },
    NpmPackageCoordinate {
        name: "@floegence/redevplugin-ui",
        version: "0.6.5",
    },
];

static RUST_CRATES: [RustCrateCoordinate; 6] = [
    RustCrateCoordinate {
        name: "redevplugin-contracts",
        version: "0.6.5",
        role: "contracts",
    },
    RustCrateCoordinate {
        name: "redevplugin-ipc",
        version: "0.6.5",
        role: "ipc",
    },
    RustCrateCoordinate {
        name: "redevplugin-wasm-abi",
        version: "0.6.5",
        role: "wasm_abi",
    },
    RustCrateCoordinate {
        name: "redevplugin-target-classifier",
        version: "0.6.5",
        role: "target_classifier",
    },
    RustCrateCoordinate {
        name: "redevplugin-worker-sdk",
        version: "0.6.5",
        role: "worker_sdk",
    },
    RustCrateCoordinate {
        name: "redevplugin-runtime",
        version: "0.6.5",
        role: "runtime",
    },
];

pub(crate) static PACKAGE_SET: PackageSet = PackageSet {
    schema_version: "redevplugin.platform_package_set.v1",
    platform_version: "0.6.5",
    go_module: GoModuleCoordinate {
        module: "github.com/floegence/redevplugin",
        version: "v0.6.5",
    },
    npm_packages: &NPM_PACKAGES,
    rust_crates: &RUST_CRATES,
    contract_registry_version: "contract-registry-v2",
    contract_set_sha256: "42768632672d3beef6410f0b87f53c8b124f1e56746bcc78beba52b6fd7da737",
};