boxdd 0.6.0

Safe, ergonomic Rust bindings for Box2D v3
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
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
// @generated by cargo run -p xtask -- recording-wire-codegen --write; do not edit.
use super::{Argument, ArgumentTag, Operation, ReturnKind, SemanticClass, StreamRole, TailKind};

pub(super) const CONTRACT_BLAKE3: &str = "0b17edca6df8d03b6bfa4d4ebf3cb6a30ccf547b9ea1d389b8dd468e1a921a24";
pub(super) const UPSTREAM_SHA: &str = "56edae79f2949d86142b03450d5d60f63bcf5a6f";

pub(super) const EFFECTIVE_SOURCE_SHA256: &str = "f6cf3bb1ca240888879a5c26ad468f98e98d5275018717505b2b0becfacd7497";

pub(super) const PROGRAM_TAKE: u8 = 1;
pub(super) const PROGRAM_BOOL: u8 = 2;
pub(super) const PROGRAM_PRECISION: u8 = 3;
pub(super) const PROGRAM_STRING: u8 = 4;
pub(super) const PROGRAM_NATIVE_POD: u8 = 5;
pub(super) const PROGRAM_COUNTED: u8 = 6;
pub(super) const NATIVE_POD_CIRCLE: u8 = 1;
pub(super) const NATIVE_POD_CAPSULE: u8 = 2;
pub(super) const NATIVE_POD_SEGMENT: u8 = 3;
pub(super) const NATIVE_POD_POLYGON: u8 = 4;
pub(super) const NATIVE_POD_CHAIN_SEGMENT: u8 = 5;

#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub(super) enum OperationRule {
    DestroyWorld,
    WorldEnableSleeping,
    WorldEnableContinuous,
    WorldSetRestitutionThreshold,
    WorldSetHitEventThreshold,
    WorldSetGravity,
    WorldExplode,
    WorldSetContactTuning,
    WorldSetContactRecycleDistance,
    WorldSetMaximumLinearSpeed,
    WorldEnableWarmStarting,
    WorldRebuildStaticTree,
    WorldEnableSpeculative,
    CreateBody,
    DestroyBody,
    BodySetTransform,
    BodySetLinearVelocity,
    BodySetType,
    BodySetName,
    BodySetAngularVelocity,
    BodySetTargetTransform,
    BodyApplyForce,
    BodyApplyForceToCenter,
    BodyApplyTorque,
    BodyClearForces,
    BodyApplyLinearImpulse,
    BodyApplyLinearImpulseToCenter,
    BodyApplyAngularImpulse,
    BodySetMassData,
    BodyApplyMassFromShapes,
    BodySetLinearDamping,
    BodySetAngularDamping,
    BodySetGravityScale,
    BodySetAwake,
    BodyWakeTouching,
    BodyEnableSleep,
    BodySetSleepThreshold,
    BodyDisable,
    BodyEnable,
    BodySetMotionLocks,
    BodySetBullet,
    BodyEnableContactRecycling,
    BodyEnableContactEvents,
    BodyEnableHitEvents,
    CreateCircleShape,
    CreateCapsuleShape,
    CreateSegmentShape,
    CreatePolygonShape,
    CreateChainSegmentShape,
    DestroyShape,
    ShapeSetDensity,
    ShapeSetFriction,
    ShapeSetRestitution,
    ShapeSetUserMaterial,
    ShapeSetSurfaceMaterial,
    ShapeSetFilter,
    ShapeEnableSensorEvents,
    ShapeEnableContactEvents,
    ShapeEnablePreSolveEvents,
    ShapeEnableHitEvents,
    ShapeSetCircle,
    ShapeSetCapsule,
    ShapeSetSegment,
    ShapeSetPolygon,
    ShapeSetChainSegment,
    ShapeApplyWind,
    CreateChain,
    DestroyChain,
    ChainSetSurfaceMaterial,
    Step,
    CreateDistanceJoint,
    CreateMotorJoint,
    CreateFilterJoint,
    CreatePrismaticJoint,
    CreateRevoluteJoint,
    CreateWeldJoint,
    CreateWheelJoint,
    DestroyJoint,
    JointSetLocalFrameA,
    JointSetLocalFrameB,
    JointSetCollideConnected,
    JointWakeBodies,
    JointSetConstraintTuning,
    JointSetForceThreshold,
    JointSetTorqueThreshold,
    DistanceJointSetLength,
    DistanceJointEnableSpring,
    DistanceJointSetSpringForceRange,
    DistanceJointSetSpringHertz,
    DistanceJointSetSpringDampingRatio,
    DistanceJointEnableLimit,
    DistanceJointSetLengthRange,
    DistanceJointEnableMotor,
    DistanceJointSetMotorSpeed,
    DistanceJointSetMaxMotorForce,
    MotorJointSetLinearVelocity,
    MotorJointSetAngularVelocity,
    MotorJointSetMaxVelocityForce,
    MotorJointSetMaxVelocityTorque,
    MotorJointSetLinearHertz,
    MotorJointSetLinearDampingRatio,
    MotorJointSetAngularHertz,
    MotorJointSetAngularDampingRatio,
    MotorJointSetMaxSpringForce,
    MotorJointSetMaxSpringTorque,
    PrismaticJointEnableSpring,
    PrismaticJointSetSpringHertz,
    PrismaticJointSetSpringDampingRatio,
    PrismaticJointSetTargetTranslation,
    PrismaticJointEnableLimit,
    PrismaticJointSetLimits,
    PrismaticJointEnableMotor,
    PrismaticJointSetMotorSpeed,
    PrismaticJointSetMaxMotorForce,
    RevoluteJointEnableSpring,
    RevoluteJointSetSpringHertz,
    RevoluteJointSetSpringDampingRatio,
    RevoluteJointSetTargetAngle,
    RevoluteJointEnableLimit,
    RevoluteJointSetLimits,
    RevoluteJointEnableMotor,
    RevoluteJointSetMotorSpeed,
    RevoluteJointSetMaxMotorTorque,
    WeldJointSetLinearHertz,
    WeldJointSetLinearDampingRatio,
    WeldJointSetAngularHertz,
    WeldJointSetAngularDampingRatio,
    WheelJointEnableSpring,
    WheelJointSetSpringHertz,
    WheelJointSetSpringDampingRatio,
    WheelJointEnableLimit,
    WheelJointSetLimits,
    WheelJointEnableMotor,
    WheelJointSetMotorSpeed,
    WheelJointSetMaxMotorTorque,
    QueryOverlapAABB,
    QueryOverlapShape,
    QueryCastRay,
    QueryCastShape,
    QueryCollideMover,
    QueryCastRayClosest,
    QueryCastMover,
    ShapeTestPoint,
    ShapeRayCast,
    StateHash,
    RecordingBounds,
}

pub(super) static OPERATIONS: &[Operation] = &[
    Operation { opcode: 0x01, name: "DestroyWorld", semantic: SemanticClass::Terminal, role: StreamRole::Terminal, rule: OperationRule::DestroyWorld, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x02, name: "WorldEnableSleeping", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldEnableSleeping, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x03, name: "WorldEnableContinuous", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldEnableContinuous, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x04, name: "WorldSetRestitutionThreshold", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetRestitutionThreshold, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x05, name: "WorldSetHitEventThreshold", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetHitEventThreshold, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x06, name: "WorldSetGravity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetGravity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x07, name: "WorldExplode", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldExplode, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::ExplosionDef, program_end: 34 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00,
    ] },
    Operation { opcode: 0x08, name: "WorldSetContactTuning", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetContactTuning, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
        Argument { tag: ArgumentTag::F32, program_end: 20 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x09, name: "WorldSetContactRecycleDistance", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetContactRecycleDistance, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x0A, name: "WorldSetMaximumLinearSpeed", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldSetMaximumLinearSpeed, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x0B, name: "WorldEnableWarmStarting", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldEnableWarmStarting, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x0C, name: "WorldRebuildStaticTree", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldRebuildStaticTree, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x0D, name: "WorldEnableSpeculative", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WorldEnableSpeculative, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x10, name: "CreateBody", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateBody, return_kind: ReturnKind::Body, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::BodyDef, program_end: 75 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10,
        0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00,
        0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00, 0x01, 0x08, 0x00,
        0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x11, name: "DestroyBody", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DestroyBody, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x20, name: "BodySetTransform", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetTransform, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Rot, program_end: 19 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x21, name: "BodySetLinearVelocity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetLinearVelocity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x22, name: "BodySetType", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetType, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::I32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x23, name: "BodySetName", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetName, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Str, program_end: 12 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x04, 0xFF, 0xFF, 0xFE, 0xFF, 0x00, 0x00,
    ] },
    Operation { opcode: 0x24, name: "BodySetAngularVelocity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetAngularVelocity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x25, name: "BodySetTargetTransform", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetTargetTransform, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::WorldTransform, program_end: 19 },
        Argument { tag: ArgumentTag::F32, program_end: 24 },
        Argument { tag: ArgumentTag::Bool, program_end: 25 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x26, name: "BodyApplyForce", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyForce, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
        Argument { tag: ArgumentTag::Position, program_end: 19 },
        Argument { tag: ArgumentTag::Bool, program_end: 20 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10,
        0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x27, name: "BodyApplyForceToCenter", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyForceToCenter, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
        Argument { tag: ArgumentTag::Bool, program_end: 11 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x28, name: "BodyApplyTorque", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyTorque, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::Bool, program_end: 11 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x29, name: "BodyClearForces", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyClearForces, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x2A, name: "BodyApplyLinearImpulse", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyLinearImpulse, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
        Argument { tag: ArgumentTag::Position, program_end: 19 },
        Argument { tag: ArgumentTag::Bool, program_end: 20 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10,
        0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x2B, name: "BodyApplyLinearImpulseToCenter", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyLinearImpulseToCenter, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
        Argument { tag: ArgumentTag::Bool, program_end: 11 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x2C, name: "BodyApplyAngularImpulse", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyAngularImpulse, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::Bool, program_end: 11 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x2D, name: "BodySetMassData", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetMassData, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::MassData, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x2E, name: "BodyApplyMassFromShapes", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyApplyMassFromShapes, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x2F, name: "BodySetLinearDamping", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetLinearDamping, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x30, name: "BodySetAngularDamping", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetAngularDamping, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x31, name: "BodySetGravityScale", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetGravityScale, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x32, name: "BodySetAwake", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetAwake, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x33, name: "BodyWakeTouching", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyWakeTouching, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x34, name: "BodyEnableSleep", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyEnableSleep, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x35, name: "BodySetSleepThreshold", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetSleepThreshold, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x36, name: "BodyDisable", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyDisable, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x37, name: "BodyEnable", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyEnable, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x38, name: "BodySetMotionLocks", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetMotionLocks, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Locks, program_end: 8 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
    ] },
    Operation { opcode: 0x39, name: "BodySetBullet", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodySetBullet, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x3A, name: "BodyEnableContactRecycling", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyEnableContactRecycling, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x3B, name: "BodyEnableContactEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyEnableContactEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x3C, name: "BodyEnableHitEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::BodyEnableHitEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x40, name: "CreateCircleShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateCircleShape, return_kind: ReturnKind::Shape, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ShapeDef, program_end: 33 },
        Argument { tag: ArgumentTag::Circle, program_end: 35 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
        0x02, 0x05, 0x01, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x41, name: "CreateCapsuleShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateCapsuleShape, return_kind: ReturnKind::Shape, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ShapeDef, program_end: 33 },
        Argument { tag: ArgumentTag::Capsule, program_end: 35 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
        0x02, 0x05, 0x02, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x42, name: "CreateSegmentShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateSegmentShape, return_kind: ReturnKind::Shape, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ShapeDef, program_end: 33 },
        Argument { tag: ArgumentTag::Segment, program_end: 35 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
        0x02, 0x05, 0x03, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x43, name: "CreatePolygonShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreatePolygonShape, return_kind: ReturnKind::Shape, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ShapeDef, program_end: 33 },
        Argument { tag: ArgumentTag::Polygon, program_end: 35 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
        0x02, 0x05, 0x04, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x44, name: "CreateChainSegmentShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateChainSegmentShape, return_kind: ReturnKind::Shape, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ShapeDef, program_end: 33 },
        Argument { tag: ArgumentTag::ChainSegment, program_end: 35 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
        0x02, 0x05, 0x05, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x45, name: "DestroyShape", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DestroyShape, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x50, name: "ShapeSetDensity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetDensity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::Bool, program_end: 11 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x51, name: "ShapeSetFriction", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetFriction, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x52, name: "ShapeSetRestitution", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetRestitution, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x53, name: "ShapeSetUserMaterial", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetUserMaterial, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::U64, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x54, name: "ShapeSetSurfaceMaterial", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetSurfaceMaterial, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Material, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x55, name: "ShapeSetFilter", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetFilter, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Filter, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x56, name: "ShapeEnableSensorEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeEnableSensorEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x57, name: "ShapeEnableContactEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeEnableContactEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x58, name: "ShapeEnablePreSolveEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeEnablePreSolveEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x59, name: "ShapeEnableHitEvents", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeEnableHitEvents, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x5A, name: "ShapeSetCircle", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetCircle, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Circle, program_end: 7 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x05, 0x01,
    ] },
    Operation { opcode: 0x5B, name: "ShapeSetCapsule", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetCapsule, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Capsule, program_end: 7 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x05, 0x02,
    ] },
    Operation { opcode: 0x5C, name: "ShapeSetSegment", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetSegment, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Segment, program_end: 7 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x05, 0x03,
    ] },
    Operation { opcode: 0x5D, name: "ShapeSetPolygon", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetPolygon, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Polygon, program_end: 7 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x05, 0x04,
    ] },
    Operation { opcode: 0x5E, name: "ShapeSetChainSegment", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeSetChainSegment, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::ChainSegment, program_end: 7 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x05, 0x05,
    ] },
    Operation { opcode: 0x5F, name: "ShapeApplyWind", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ShapeApplyWind, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
        Argument { tag: ArgumentTag::F32, program_end: 20 },
        Argument { tag: ArgumentTag::Bool, program_end: 21 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x70, name: "CreateChain", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateChain, return_kind: ReturnKind::Chain, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::BodyId, program_end: 5 },
        Argument { tag: ArgumentTag::ChainDef, program_end: 47 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x06, 0x01, 0x40, 0x42, 0x0F, 0x00,
        0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x06, 0x01, 0x40, 0x42, 0x0F, 0x00, 0x05,
        0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01,
        0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x71, name: "DestroyChain", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DestroyChain, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ChainId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x72, name: "ChainSetSurfaceMaterial", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::ChainSetSurfaceMaterial, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::ChainId, program_end: 5 },
        Argument { tag: ArgumentTag::Material, program_end: 10 },
        Argument { tag: ArgumentTag::I32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x80, name: "Step", semantic: SemanticClass::Step, role: StreamRole::Ordinary, rule: OperationRule::Step, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::I32, program_end: 15 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x90, name: "CreateDistanceJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateDistanceJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::DistanceJointDef, program_end: 104 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x91, name: "CreateMotorJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateMotorJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::MotorJointDef, program_end: 106 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00,
        0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x92, name: "CreateFilterJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateFilterJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::FilterJointDef, program_end: 56 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x93, name: "CreatePrismaticJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreatePrismaticJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::PrismaticJointDef, program_end: 94 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x94, name: "CreateRevoluteJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateRevoluteJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::RevoluteJointDef, program_end: 94 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x95, name: "CreateWeldJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateWeldJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::WeldJointDef, program_end: 76 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00,
        0x00,
    ] },
    Operation { opcode: 0x96, name: "CreateWheelJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::CreateWheelJoint, return_kind: ReturnKind::Joint, tail: TailKind::ReturnedId, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::WheelJointDef, program_end: 89 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x02, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02, 0x01,
        0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x97, name: "DestroyJoint", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DestroyJoint, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x98, name: "JointSetLocalFrameA", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetLocalFrameA, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Transform, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x99, name: "JointSetLocalFrameB", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetLocalFrameB, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Transform, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x9A, name: "JointSetCollideConnected", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetCollideConnected, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0x9B, name: "JointWakeBodies", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointWakeBodies, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x9C, name: "JointSetConstraintTuning", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetConstraintTuning, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x9D, name: "JointSetForceThreshold", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetForceThreshold, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0x9E, name: "JointSetTorqueThreshold", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::JointSetTorqueThreshold, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA0, name: "DistanceJointSetLength", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetLength, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA1, name: "DistanceJointEnableSpring", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointEnableSpring, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xA2, name: "DistanceJointSetSpringForceRange", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetSpringForceRange, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA3, name: "DistanceJointSetSpringHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetSpringHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA4, name: "DistanceJointSetSpringDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetSpringDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA5, name: "DistanceJointEnableLimit", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointEnableLimit, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xA6, name: "DistanceJointSetLengthRange", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetLengthRange, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA7, name: "DistanceJointEnableMotor", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointEnableMotor, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xA8, name: "DistanceJointSetMotorSpeed", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetMotorSpeed, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xA9, name: "DistanceJointSetMaxMotorForce", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::DistanceJointSetMaxMotorForce, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAA, name: "MotorJointSetLinearVelocity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetLinearVelocity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Vec2, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAB, name: "MotorJointSetAngularVelocity", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetAngularVelocity, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAC, name: "MotorJointSetMaxVelocityForce", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetMaxVelocityForce, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAD, name: "MotorJointSetMaxVelocityTorque", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetMaxVelocityTorque, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAE, name: "MotorJointSetLinearHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetLinearHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xAF, name: "MotorJointSetLinearDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetLinearDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB0, name: "MotorJointSetAngularHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetAngularHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB1, name: "MotorJointSetAngularDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetAngularDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB2, name: "MotorJointSetMaxSpringForce", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetMaxSpringForce, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB3, name: "MotorJointSetMaxSpringTorque", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::MotorJointSetMaxSpringTorque, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB4, name: "PrismaticJointEnableSpring", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointEnableSpring, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xB5, name: "PrismaticJointSetSpringHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetSpringHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB6, name: "PrismaticJointSetSpringDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetSpringDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB7, name: "PrismaticJointSetTargetTranslation", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetTargetTranslation, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xB8, name: "PrismaticJointEnableLimit", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointEnableLimit, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xB9, name: "PrismaticJointSetLimits", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetLimits, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xBA, name: "PrismaticJointEnableMotor", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointEnableMotor, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xBB, name: "PrismaticJointSetMotorSpeed", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetMotorSpeed, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xBC, name: "PrismaticJointSetMaxMotorForce", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::PrismaticJointSetMaxMotorForce, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xBD, name: "RevoluteJointEnableSpring", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointEnableSpring, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xBE, name: "RevoluteJointSetSpringHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetSpringHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xBF, name: "RevoluteJointSetSpringDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetSpringDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC0, name: "RevoluteJointSetTargetAngle", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetTargetAngle, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC1, name: "RevoluteJointEnableLimit", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointEnableLimit, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xC2, name: "RevoluteJointSetLimits", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetLimits, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC3, name: "RevoluteJointEnableMotor", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointEnableMotor, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xC4, name: "RevoluteJointSetMotorSpeed", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetMotorSpeed, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC5, name: "RevoluteJointSetMaxMotorTorque", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::RevoluteJointSetMaxMotorTorque, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC6, name: "WeldJointSetLinearHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WeldJointSetLinearHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC7, name: "WeldJointSetLinearDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WeldJointSetLinearDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC8, name: "WeldJointSetAngularHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WeldJointSetAngularHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xC9, name: "WeldJointSetAngularDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WeldJointSetAngularDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xCA, name: "WheelJointEnableSpring", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointEnableSpring, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xCB, name: "WheelJointSetSpringHertz", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointSetSpringHertz, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xCC, name: "WheelJointSetSpringDampingRatio", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointSetSpringDampingRatio, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xCD, name: "WheelJointEnableLimit", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointEnableLimit, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xCE, name: "WheelJointSetLimits", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointSetLimits, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
        Argument { tag: ArgumentTag::F32, program_end: 15 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xCF, name: "WheelJointEnableMotor", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointEnableMotor, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::Bool, program_end: 6 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xD0, name: "WheelJointSetMotorSpeed", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointSetMotorSpeed, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xD1, name: "WheelJointSetMaxMotorTorque", semantic: SemanticClass::Mutation, role: StreamRole::Ordinary, rule: OperationRule::WheelJointSetMaxMotorTorque, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::JointId, program_end: 5 },
        Argument { tag: ArgumentTag::F32, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xE0, name: "QueryOverlapAABB", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryOverlapAABB, return_kind: ReturnKind::None, tail: TailKind::OverlapHits, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Aabb, program_end: 24 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 29 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40,
        0x42, 0x0F, 0x00, 0x06, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x02, 0x01, 0x08, 0x00,
        0x00, 0x00,
    ] },
    Operation { opcode: 0xE1, name: "QueryOverlapShape", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryOverlapShape, return_kind: ReturnKind::None, tail: TailKind::OverlapHits, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::ShapeProxy, program_end: 34 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 39 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x06, 0x00, 0x00,
        0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x02, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xE2, name: "QueryCastRay", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryCastRay, return_kind: ReturnKind::None, tail: TailKind::CastHits, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Vec2, program_end: 19 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 24 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x1D, 0x00,
        0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xE3, name: "QueryCastShape", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryCastShape, return_kind: ReturnKind::None, tail: TailKind::CastHits, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::ShapeProxy, program_end: 34 },
        Argument { tag: ArgumentTag::Vec2, program_end: 39 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 44 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x06, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00,
        0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40, 0x42,
        0x0F, 0x00, 0x1D, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00,
        0x10, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04,
        0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xE4, name: "QueryCollideMover", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryCollideMover, return_kind: ReturnKind::None, tail: TailKind::PlaneHits, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Capsule, program_end: 16 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 21 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x02,
        0x01, 0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x40, 0x42, 0x0F, 0x00, 0x16, 0x00, 0x00, 0x00, 0x01,
        0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x02, 0x02,
    ] },
    Operation { opcode: 0xE5, name: "QueryCastRayClosest", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryCastRayClosest, return_kind: ReturnKind::None, tail: TailKind::ClosestRayResult, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Vec2, program_end: 19 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 24 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00,
        0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xE6, name: "QueryCastMover", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::QueryCastMover, return_kind: ReturnKind::None, tail: TailKind::MoverResult, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Capsule, program_end: 16 },
        Argument { tag: ArgumentTag::Vec2, program_end: 21 },
        Argument { tag: ArgumentTag::QueryFilter, program_end: 26 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x05, 0x02,
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xE7, name: "ShapeTestPoint", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::ShapeTestPoint, return_kind: ReturnKind::None, tail: TailKind::BoolResult, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xE8, name: "ShapeRayCast", semantic: SemanticClass::Query, role: StreamRole::Ordinary, rule: OperationRule::ShapeRayCast, return_kind: ReturnKind::None, tail: TailKind::ShapeCastResult, arguments: &[
        Argument { tag: ArgumentTag::ShapeId, program_end: 5 },
        Argument { tag: ArgumentTag::Position, program_end: 14 },
        Argument { tag: ArgumentTag::Vec2, program_end: 19 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x01, 0x08,
        0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00, 0x03, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00,
        0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, 0x00, 0x02,
    ] },
    Operation { opcode: 0xF1, name: "StateHash", semantic: SemanticClass::StateHash, role: StreamRole::Initial, rule: OperationRule::StateHash, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::WorldId, program_end: 5 },
        Argument { tag: ArgumentTag::U64, program_end: 10 },
    ], program: &[
        0x01, 0x04, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
    Operation { opcode: 0xF2, name: "RecordingBounds", semantic: SemanticClass::Metadata, role: StreamRole::FinalMetadata, rule: OperationRule::RecordingBounds, return_kind: ReturnKind::None, tail: TailKind::None, arguments: &[
        Argument { tag: ArgumentTag::Aabb, program_end: 10 },
    ], program: &[
        0x01, 0x08, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0x00,
    ] },
];