pelican-engine 0.3.25 → 0.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "format": "pelican.api-index",
3
3
  "version": 1,
4
- "engineVersion": "0.3.25",
4
+ "engineVersion": "0.3.26",
5
5
  "entry": "pelican-engine",
6
6
  "source": "packages/sdk/src/index.ts",
7
7
  "symbols": [
8
8
  {
9
9
  "name": "SDK_VERSION",
10
10
  "kind": "constant",
11
- "signature": "SDK_VERSION = \"0.3.25\"",
11
+ "signature": "SDK_VERSION = \"0.3.26\"",
12
12
  "line": 2
13
13
  },
14
14
  {
@@ -380,7 +380,7 @@
380
380
  {
381
381
  "name": "ClothDefinition",
382
382
  "kind": "InterfaceDeclaration",
383
- "signature": "export interface ClothDefinition {\n id: string;\n points: readonly Vec3[];\n triangles: readonly ClothTriangle[];\n /** Kilograms per movable particle. */\n mass: number;\n radius?: number;\n fixedDt?: number;\n autoStep?: boolean;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n /** Distance-based bending approximation across shared triangle edges; defaults to true. */\n bending?: boolean;\n anchors?: readonly { index: number; position: Vec3 }[];\n visual?: ClothVisualOptions;\n /** Discrete non-adjacent particle self-contact; defaults to true for new cloth. */\n selfCollisions?: boolean;\n /** Sphere triangle-surface contacts; defaults to true for new cloth. */\n surfaceCollisions?: boolean;\n /** Optional live dynamic sphere bindings; sampled after the physics phase, one-way only. */\n bodyColliders?: readonly ClothBodyCollider[];\n}",
383
+ "signature": "export interface ClothDefinition {\n id: string;\n points: readonly Vec3[];\n triangles: readonly ClothTriangle[];\n /** Kilograms per movable particle. */\n mass: number;\n radius?: number;\n fixedDt?: number;\n autoStep?: boolean;\n substeps?: number;\n iterations?: number;\n damping?: number;\n gravity?: Vec3;\n /** Distance-based bending approximation across shared triangle edges; defaults to true. */\n bending?: boolean;\n anchors?: readonly { index: number; position: Vec3 }[];\n visual?: ClothVisualOptions;\n /** Discrete non-adjacent particle self-contact; defaults to true for new cloth. */\n selfCollisions?: boolean;\n /** Sphere triangle-surface contacts; defaults to true for new cloth. */\n surfaceCollisions?: boolean;\n /** Optional live dynamic sphere bindings; sampled after the physics phase. */\n bodyColliders?: readonly ClothBodyCollider[];\n /** When true, detected contacts submit approximate reaction impulses to bound bodies. */\n bodyReactions?: boolean;\n}",
384
384
  "line": 238,
385
385
  "fields": [
386
386
  "id",
@@ -399,26 +399,29 @@
399
399
  "visual",
400
400
  "selfCollisions",
401
401
  "surfaceCollisions",
402
- "bodyColliders"
402
+ "bodyColliders",
403
+ "bodyReactions"
403
404
  ]
404
405
  },
405
406
  {
406
407
  "name": "ClothContact",
407
408
  "kind": "InterfaceDeclaration",
408
- "signature": "export interface ClothContact { tick: number; particle: number; colliderId: string; penetration: number }",
409
- "line": 262,
409
+ "signature": "export interface ClothContact { tick: number; particle: number; colliderId: string; penetration: number; reactionImpulse?: Vec3; reactionAngularImpulse?: Vec3 }",
410
+ "line": 264,
410
411
  "fields": [
411
412
  "tick",
412
413
  "particle",
413
414
  "colliderId",
414
- "penetration"
415
+ "penetration",
416
+ "reactionImpulse",
417
+ "reactionAngularImpulse"
415
418
  ]
416
419
  },
417
420
  {
418
421
  "name": "ClothSelfContact",
419
422
  "kind": "InterfaceDeclaration",
420
423
  "signature": "export interface ClothSelfContact { tick: number; firstParticle: number; secondParticle: number; penetration: number }",
421
- "line": 263,
424
+ "line": 265,
422
425
  "fields": [
423
426
  "tick",
424
427
  "firstParticle",
@@ -429,21 +432,23 @@
429
432
  {
430
433
  "name": "ClothSurfaceContact",
431
434
  "kind": "InterfaceDeclaration",
432
- "signature": "export interface ClothSurfaceContact { tick: number; triangle: number; colliderId: string; penetration: number; barycentric: [number, number, number] }",
433
- "line": 264,
435
+ "signature": "export interface ClothSurfaceContact { tick: number; triangle: number; colliderId: string; penetration: number; barycentric: [number, number, number]; reactionImpulse?: Vec3; reactionAngularImpulse?: Vec3 }",
436
+ "line": 266,
434
437
  "fields": [
435
438
  "tick",
436
439
  "triangle",
437
440
  "colliderId",
438
441
  "penetration",
439
- "barycentric"
442
+ "barycentric",
443
+ "reactionImpulse",
444
+ "reactionAngularImpulse"
440
445
  ]
441
446
  },
442
447
  {
443
448
  "name": "ClothState",
444
449
  "kind": "InterfaceDeclaration",
445
450
  "signature": "export interface ClothState {\n tick: number; simulatedSeconds: number; disposed: boolean; selfCollisions: boolean; surfaceCollisions: boolean;\n positions: Vec3[]; velocities: Vec3[]; triangles: ClothTriangle[];\n anchors: { index: number; position: Vec3 }[];\n contacts: ClothContact[]; selfContacts: ClothSelfContact[]; surfaceContacts: ClothSurfaceContact[];\n maxDistanceError: number;\n resources: { particles: number; triangles: number; constraints: number; anchors: number; colliders: number };\n}",
446
- "line": 265,
451
+ "line": 267,
447
452
  "fields": [
448
453
  "tick",
449
454
  "simulatedSeconds",
@@ -465,7 +470,7 @@
465
470
  "name": "ClothVisualState",
466
471
  "kind": "InterfaceDeclaration",
467
472
  "signature": "export interface ClothVisualState {\n id: string; material: string; positions: Vec3[]; triangles: ClothTriangle[];\n uvs: Vec2[]; castShadow: boolean; receiveShadow: boolean;\n}",
468
- "line": 273,
473
+ "line": 275,
469
474
  "fields": [
470
475
  "id",
471
476
  "material",
@@ -480,7 +485,7 @@
480
485
  "name": "ClothService",
481
486
  "kind": "InterfaceDeclaration",
482
487
  "signature": "export interface ClothService {\n create(definition: ClothDefinition): void;\n /** Explicit ticks for manual cloth only; automatic cloth rejects this call. */\n step(id: string, ticks?: number): ClothState;\n inspect(id: string): ClothState;\n visuals(): readonly ClothVisualState[];\n setColliders(id: string, colliders: readonly ClothCollider[]): void;\n setAnchor(id: string, index: number, position: Vec3): void;\n releaseAnchor(id: string, index: number): void;\n applyForce(id: string, index: number, force: Vec3): void;\n applyImpulse(id: string, index: number, impulse: Vec3): void;\n destroy(id: string): void;\n}",
483
- "line": 277,
488
+ "line": 279,
484
489
  "fields": [
485
490
  "create",
486
491
  "step",
@@ -498,7 +503,7 @@
498
503
  "name": "NavigationCell",
499
504
  "kind": "InterfaceDeclaration",
500
505
  "signature": "export interface NavigationCell { readonly x: number; readonly y: number }",
501
- "line": 293,
506
+ "line": 295,
502
507
  "fields": [
503
508
  "x",
504
509
  "y"
@@ -508,7 +513,7 @@
508
513
  "name": "NavigationObstacleUpdate",
509
514
  "kind": "InterfaceDeclaration",
510
515
  "signature": "export interface NavigationObstacleUpdate { readonly cell: NavigationCell; readonly blocked: boolean }",
511
- "line": 295,
516
+ "line": 297,
512
517
  "fields": [
513
518
  "cell",
514
519
  "blocked"
@@ -518,7 +523,7 @@
518
523
  "name": "NavigationGrid",
519
524
  "kind": "InterfaceDeclaration",
520
525
  "signature": "export interface NavigationGrid {\n readonly id: string;\n readonly owner: string;\n readonly width: number;\n readonly height: number;\n readonly blocked?: readonly NavigationCell[];\n /** Maximum distinct search cells, including endpoints; defaults to 65536. Raising it increases memory and CPU use. */\n readonly searchCellBudget?: number;\n}",
521
- "line": 296,
526
+ "line": 298,
522
527
  "fields": [
523
528
  "id",
524
529
  "owner",
@@ -532,7 +537,7 @@
532
537
  "name": "NavigationService",
533
538
  "kind": "InterfaceDeclaration",
534
539
  "signature": "export interface NavigationService {\n createGrid(grid: NavigationGrid): void;\n /** Returns a detached description, including the current blocked cells. */\n getGrid(id: string): NavigationGrid;\n isBlocked(id: string, cell: NavigationCell): boolean;\n setBlocked(id: string, cell: NavigationCell, blocked: boolean): void;\n /** Validates the entire batch before committing; the last change for a repeated cell wins. */\n setBlockedBatch(id: string, updates: readonly NavigationObstacleUpdate[]): void;\n findPath(id: string, start: NavigationCell, end: NavigationCell): readonly NavigationCell[];\n destroyGrid(id: string): void;\n destroyOwner(owner: string): void;\n}",
535
- "line": 305,
540
+ "line": 307,
536
541
  "fields": [
537
542
  "createGrid",
538
543
  "getGrid",
@@ -548,13 +553,13 @@
548
553
  "name": "RenderMode",
549
554
  "kind": "TypeAliasDeclaration",
550
555
  "signature": "export type RenderMode = \"raster\" | \"hybrid\" | \"path\";",
551
- "line": 317
556
+ "line": 319
552
557
  },
553
558
  {
554
559
  "name": "RenderCapabilities",
555
560
  "kind": "InterfaceDeclaration",
556
561
  "signature": "export interface RenderCapabilities {\n backend: \"webgpu\" | \"webgl2\" | \"uninitialized\";\n compute: boolean;\n availableModes: readonly RenderMode[];\n}",
557
- "line": 318,
562
+ "line": 320,
558
563
  "fields": [
559
564
  "backend",
560
565
  "compute",
@@ -565,7 +570,7 @@
565
570
  "name": "RenderSettings",
566
571
  "kind": "InterfaceDeclaration",
567
572
  "signature": "export interface RenderSettings {\n mode: RenderMode;\n samplesPerFrame: number;\n maxBounces: number;\n denoise: boolean;\n denoiseIterations: number;\n exposure: number;\n directLighting: boolean;\n indirectLighting: boolean;\n debug: \"beauty\" | \"albedo\" | \"normal\" | \"depth\" | \"samples\";\n}",
568
- "line": 323,
573
+ "line": 325,
569
574
  "fields": [
570
575
  "mode",
571
576
  "samplesPerFrame",
@@ -582,7 +587,7 @@
582
587
  "name": "RenderService",
583
588
  "kind": "InterfaceDeclaration",
584
589
  "signature": "export interface RenderService {\n configure(settings: Partial<RenderSettings>): void;\n state(): Readonly<RenderSettings>;\n capabilities(): Readonly<RenderCapabilities>;\n setMaterialParameter(material: string, name: string, value: GraphValue): void;\n materialParameters(material: string): Readonly<Record<string, GraphValue>>;\n readonly effects: PostProcessService;\n readonly buffers: RenderBufferBindings;\n readonly textures: RenderTextureBindings;\n}",
585
- "line": 334,
590
+ "line": 336,
586
591
  "fields": [
587
592
  "configure",
588
593
  "state",
@@ -598,7 +603,7 @@
598
603
  "name": "MaterialBufferInput",
599
604
  "kind": "InterfaceDeclaration",
600
605
  "signature": "export interface MaterialBufferInput {\n /** Shared slot declaration for material and postprocess graphs. */\n name: string;\n type: GraphType;\n /** Optional initial logical compute-buffer ID. */\n buffer?: string;\n /** Optional exact element count required by this slot. */\n count?: number;\n}",
601
- "line": 344,
606
+ "line": 346,
602
607
  "fields": [
603
608
  "name",
604
609
  "type",
@@ -610,7 +615,7 @@
610
615
  "name": "RenderBufferReference",
611
616
  "kind": "InterfaceDeclaration",
612
617
  "signature": "export interface RenderBufferReference {\n id: string;\n type: GraphType;\n count: number;\n}",
613
- "line": 353,
618
+ "line": 355,
614
619
  "fields": [
615
620
  "id",
616
621
  "type",
@@ -621,7 +626,7 @@
621
626
  "name": "RenderBufferBindings",
622
627
  "kind": "InterfaceDeclaration",
623
628
  "signature": "export interface RenderBufferBindings {\n bind(target: string, name: string, buffer: ComputeBufferHandle): void;\n unbind(target: string, name: string): void;\n state(target: string): Readonly<Record<string, RenderBufferReference>>;\n}",
624
- "line": 358,
629
+ "line": 360,
625
630
  "fields": [
626
631
  "bind",
627
632
  "unbind",
@@ -632,7 +637,7 @@
632
637
  "name": "MaterialTextureInput",
633
638
  "kind": "InterfaceDeclaration",
634
639
  "signature": "export interface MaterialTextureInput extends ComputeTextureBinding {\n /** Initial managed texture ID; asset import uses computeTextures/createTexture. */\n texture?: string;\n width?: number;\n height?: number;\n}",
635
- "line": 363,
640
+ "line": 365,
636
641
  "fields": [
637
642
  "texture",
638
643
  "width",
@@ -643,7 +648,7 @@
643
648
  "name": "RenderTextureReference",
644
649
  "kind": "InterfaceDeclaration",
645
650
  "signature": "export interface RenderTextureReference extends ComputeTextureSize {\n id: string;\n format: \"rgba32float\";\n}",
646
- "line": 369,
651
+ "line": 371,
647
652
  "fields": [
648
653
  "id",
649
654
  "format"
@@ -653,7 +658,7 @@
653
658
  "name": "RenderTextureBindings",
654
659
  "kind": "InterfaceDeclaration",
655
660
  "signature": "export interface RenderTextureBindings {\n bind(target: string, name: string, texture: ComputeTextureHandle): void;\n unbind(target: string, name: string): void;\n state(target: string): Readonly<Record<string, RenderTextureReference>>;\n}",
656
- "line": 373,
661
+ "line": 375,
657
662
  "fields": [
658
663
  "bind",
659
664
  "unbind",
@@ -664,7 +669,7 @@
664
669
  "name": "PostProcessState",
665
670
  "kind": "InterfaceDeclaration",
666
671
  "signature": "export interface PostProcessState {\n id: string;\n enabled: boolean;\n parameters: Readonly<Record<string, GraphValue>>;\n}",
667
- "line": 378,
672
+ "line": 380,
668
673
  "fields": [
669
674
  "id",
670
675
  "enabled",
@@ -675,7 +680,7 @@
675
680
  "name": "PostProcessService",
676
681
  "kind": "InterfaceDeclaration",
677
682
  "signature": "export interface PostProcessService {\n /** Compute-buffer slots declared by definePostProcess, addressed by pass ID. */\n readonly buffers: RenderBufferBindings;\n readonly textures: RenderTextureBindings;\n configure(id: string, settings: { enabled: boolean }): void;\n state(id: string): Readonly<PostProcessState>;\n setParameter(id: string, name: string, value: GraphValue): void;\n /** Clears temporal effect images; it does not modify game or trace accumulation state. */\n resetHistory(id?: string): void;\n}",
678
- "line": 383,
683
+ "line": 385,
679
684
  "fields": [
680
685
  "buffers",
681
686
  "textures",
@@ -689,7 +694,7 @@
689
694
  "name": "ComputeBufferHandle",
690
695
  "kind": "InterfaceDeclaration",
691
696
  "signature": "export interface ComputeBufferHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n}",
692
- "line": 393,
697
+ "line": 395,
693
698
  "fields": [
694
699
  "owner",
695
700
  "index",
@@ -700,7 +705,7 @@
700
705
  "name": "ComputeTaskHandle",
701
706
  "kind": "InterfaceDeclaration",
702
707
  "signature": "export interface ComputeTaskHandle {\n readonly owner: number;\n readonly id: number;\n}",
703
- "line": 398,
708
+ "line": 400,
704
709
  "fields": [
705
710
  "owner",
706
711
  "id"
@@ -710,7 +715,7 @@
710
715
  "name": "ComputeBufferInput",
711
716
  "kind": "InterfaceDeclaration",
712
717
  "signature": "export interface ComputeBufferInput {\n id: string;\n type: GraphType;\n count: number;\n data?: readonly GraphValue[];\n}",
713
- "line": 402,
718
+ "line": 404,
714
719
  "fields": [
715
720
  "id",
716
721
  "type",
@@ -722,7 +727,7 @@
722
727
  "name": "ComputeTextureHandle",
723
728
  "kind": "InterfaceDeclaration",
724
729
  "signature": "export interface ComputeTextureHandle {\n readonly owner: number;\n readonly index: number;\n readonly generation: number;\n readonly kind: \"texture\";\n}",
725
- "line": 408,
730
+ "line": 410,
726
731
  "fields": [
727
732
  "owner",
728
733
  "index",
@@ -734,7 +739,7 @@
734
739
  "name": "ComputeTextureSize",
735
740
  "kind": "InterfaceDeclaration",
736
741
  "signature": "export interface ComputeTextureSize {\n width: number;\n height: number;\n}",
737
- "line": 414,
742
+ "line": 416,
738
743
  "fields": [
739
744
  "width",
740
745
  "height"
@@ -744,7 +749,7 @@
744
749
  "name": "ComputeTextureDataInput",
745
750
  "kind": "InterfaceDeclaration",
746
751
  "signature": "export interface ComputeTextureDataInput extends ComputeTextureSize {\n id: string;\n /** Linear rgba32float texels in row-major order, without color-space conversion. */\n data?: readonly Vec4[];\n asset?: never;\n}",
747
- "line": 418,
752
+ "line": 420,
748
753
  "fields": [
749
754
  "id",
750
755
  "data",
@@ -755,7 +760,7 @@
755
760
  "name": "ComputeTextureAssetInput",
756
761
  "kind": "InterfaceDeclaration",
757
762
  "signature": "export interface ComputeTextureAssetInput {\n id: string;\n asset: AssetDefinition | string;\n width?: never;\n height?: never;\n data?: never;\n}",
758
- "line": 424,
763
+ "line": 426,
759
764
  "fields": [
760
765
  "id",
761
766
  "asset",
@@ -768,13 +773,13 @@
768
773
  "name": "ComputeTextureInput",
769
774
  "kind": "TypeAliasDeclaration",
770
775
  "signature": "export type ComputeTextureInput = ComputeTextureDataInput | ComputeTextureAssetInput;",
771
- "line": 431
776
+ "line": 433
772
777
  },
773
778
  {
774
779
  "name": "ComputeTextureBinding",
775
780
  "kind": "InterfaceDeclaration",
776
781
  "signature": "export interface ComputeTextureBinding {\n name: string;\n filter?: \"nearest\" | \"linear\";\n wrapU?: \"clamp\" | \"repeat\" | \"mirror\";\n wrapV?: \"clamp\" | \"repeat\" | \"mirror\";\n}",
777
- "line": 432,
782
+ "line": 434,
778
783
  "fields": [
779
784
  "name",
780
785
  "filter",
@@ -786,7 +791,7 @@
786
791
  "name": "ComputeDispatchInput",
787
792
  "kind": "InterfaceDeclaration",
788
793
  "signature": "export interface ComputeDispatchInput {\n output: ComputeBufferHandle | ComputeTextureHandle;\n /** Handles capture dispatch-time data; task bindings consume that exact successful output revision. */\n bindings?: Readonly<Record<string, ComputeBufferHandle | { task: ComputeTaskHandle }>>;\n /** Named sampled rgba32float textures; task bindings capture that exact texture result. */\n textures?: Readonly<Record<string, ComputeTextureHandle | { task: ComputeTaskHandle }>>;\n /** Ordering only. It never silently refreshes ordinary handle bindings. */\n after?: readonly ComputeTaskHandle[];\n parameters?: Readonly<Record<string, GraphValue>>;\n /** Fixed simulation time by default, not wall-clock time. */\n time?: number;\n}",
789
- "line": 438,
794
+ "line": 440,
790
795
  "fields": [
791
796
  "output",
792
797
  "bindings",
@@ -800,7 +805,7 @@
800
805
  "name": "ComputeTaskState",
801
806
  "kind": "InterfaceDeclaration",
802
807
  "signature": "export interface ComputeTaskState {\n status: \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"cancelled\";\n error?: { code: string; message: string; remediation: string };\n}",
803
- "line": 450,
808
+ "line": 452,
804
809
  "fields": [
805
810
  "status",
806
811
  "error"
@@ -810,7 +815,7 @@
810
815
  "name": "ComputeService",
811
816
  "kind": "InterfaceDeclaration",
812
817
  "signature": "export interface ComputeService {\n createTexture(input: ComputeTextureInput): ComputeTextureHandle;\n resolveTexture(id: string): ComputeTextureHandle;\n describeTexture(texture: ComputeTextureHandle): Readonly<ComputeTextureSize & { id: string; format: \"rgba32float\"; revision: number }>;\n readTexture(texture: ComputeTextureHandle): readonly Vec4[];\n writeTexture(texture: ComputeTextureHandle, data: readonly Vec4[], region?: ComputeTextureSize & { x: number; y: number }): void;\n releaseTexture(texture: ComputeTextureHandle): void;\n createBuffer(input: ComputeBufferInput): ComputeBufferHandle;\n resolve(id: string): ComputeBufferHandle;\n describeBuffer(buffer: ComputeBufferHandle): Readonly<{ id: string; type: GraphType; count: number; revision: number }>;\n /** Last committed GPU result; detached CPU data, never a GPU object. */\n readBuffer(buffer: ComputeBufferHandle): readonly GraphValue[];\n writeBuffer(buffer: ComputeBufferHandle, values: readonly GraphValue[], offset?: number): void;\n releaseBuffer(buffer: ComputeBufferHandle): void;\n dispatch(kernel: ComputeDefinition | string, input: ComputeDispatchInput): ComputeTaskHandle;\n task(task: ComputeTaskHandle): Readonly<ComputeTaskState>;\n tasks(): readonly { handle: ComputeTaskHandle; state: ComputeTaskState }[];\n cancel(task: ComputeTaskHandle): void;\n releaseTask(task: ComputeTaskHandle): void;\n}",
813
- "line": 454,
818
+ "line": 456,
814
819
  "fields": [
815
820
  "createTexture",
816
821
  "resolveTexture",
@@ -835,7 +840,7 @@
835
840
  "name": "InputService",
836
841
  "kind": "InterfaceDeclaration",
837
842
  "signature": "export interface InputService {\n held(action: string): boolean;\n pressed(action: string): boolean;\n released(action: string): boolean;\n axis(negative: string, positive: string): number;\n}",
838
- "line": 474,
843
+ "line": 476,
839
844
  "fields": [
840
845
  "held",
841
846
  "pressed",
@@ -847,7 +852,7 @@
847
852
  "name": "PhysicsService",
848
853
  "kind": "InterfaceDeclaration",
849
854
  "signature": "export interface PhysicsService {\n moveCharacter(entity: string, displacement: Vec3): void;\n grounded(entity: string): boolean;\n velocity(entity: string): Vec3;\n /** World-space rigid-body center of mass, including collider offsets. */\n centerOfMass(entity: string): Vec3;\n setVelocity(entity: string, velocity: Vec3): void;\n impulse(entity: string, impulse: Vec3): void;\n /** Angular velocity in world-space radians per second. */\n angularVelocity(entity: string): Vec3;\n setAngularVelocity(entity: string, velocity: Vec3): void;\n /** Instantaneous world-space angular impulse, in angular-momentum units. */\n torqueImpulse(entity: string, impulse: Vec3): void;\n /** Apply world-space impulse at a world-space point, changing linear and angular motion. */\n impulseAtPoint(entity: string, impulse: Vec3, point: Vec3): void;\n raycast(\n origin: Vec3,\n direction: Vec3,\n maxDistance: number,\n options?: { exclude?: readonly string[]; includeTriggers?: boolean },\n ): { entity: string; distance: number; point: Vec3; normal: Vec3 } | null;\n}",
850
- "line": 480,
855
+ "line": 482,
851
856
  "fields": [
852
857
  "moveCharacter",
853
858
  "grounded",
@@ -866,7 +871,7 @@
866
871
  "name": "AnimationService",
867
872
  "kind": "InterfaceDeclaration",
868
873
  "signature": "export interface AnimationService {\n play(\n entity: string,\n clip: string,\n options?: { fade?: number; speed?: number; loop?: boolean },\n ): void;\n state(entity: string): {\n clip: string | null;\n time: number;\n playing: boolean;\n };\n}",
869
- "line": 502,
874
+ "line": 504,
870
875
  "fields": [
871
876
  "play",
872
877
  "state"
@@ -876,7 +881,7 @@
876
881
  "name": "CameraService",
877
882
  "kind": "InterfaceDeclaration",
878
883
  "signature": "export interface CameraService {\n follow(\n entity: string,\n options?: {\n distance?: number;\n height?: number;\n lookHeight?: number;\n yaw?: number;\n smoothing?: number;\n },\n ): void;\n orbit(yaw: number): void;\n}",
879
- "line": 514,
884
+ "line": 516,
880
885
  "fields": [
881
886
  "follow",
882
887
  "orbit"
@@ -886,7 +891,7 @@
886
891
  "name": "UIService",
887
892
  "kind": "InterfaceDeclaration",
888
893
  "signature": "export interface UIService {\n setText(id: string, text: string): void;\n setProgress(id: string, value: number): void;\n setVisible(id: string, visible: boolean): void;\n}",
889
- "line": 527,
894
+ "line": 529,
890
895
  "fields": [
891
896
  "setText",
892
897
  "setProgress",
@@ -897,7 +902,7 @@
897
902
  "name": "AudioService",
898
903
  "kind": "InterfaceDeclaration",
899
904
  "signature": "export interface AudioService {\n play(\n id: string,\n options?: { volume?: number; loop?: boolean; entity?: string; bus?: string; priority?: number },\n ): string;\n stop(voice: string): void;\n /** Pause/resume are idempotent; an unknown valid voice id is a no-op. Playback time follows fixed simulation ticks, even while audio is locked. */\n pause(voice: string): void;\n resume(voice: string): void;\n volume(value: number): void;\n /** Set a declared bus gain, independently of master and voice gain. */\n busVolume(id: string, value: number): void;\n /** Fade a declared bus over fixed-tick seconds; busVolume or another fade replaces it. */\n fadeBus(id: string, target: number, duration: number): void;\n}",
900
- "line": 532,
905
+ "line": 534,
901
906
  "fields": [
902
907
  "play",
903
908
  "stop",
@@ -912,7 +917,7 @@
912
917
  "name": "StorageService",
913
918
  "kind": "InterfaceDeclaration",
914
919
  "signature": "export interface StorageService {\n save(slot: string): void;\n load(slot: string): void;\n status(): {\n state: \"idle\" | \"saving\" | \"loading\" | \"saved\" | \"loaded\" | \"failed\";\n slot: string | null;\n error: string | null;\n };\n}",
915
- "line": 547,
920
+ "line": 549,
916
921
  "fields": [
917
922
  "save",
918
923
  "load",
@@ -923,7 +928,7 @@
923
928
  "name": "SceneService",
924
929
  "kind": "InterfaceDeclaration",
925
930
  "signature": "export interface SceneService {\n current(): string;\n load(id: string): void;\n}",
926
- "line": 556,
931
+ "line": 558,
927
932
  "fields": [
928
933
  "current",
929
934
  "load"
@@ -933,7 +938,7 @@
933
938
  "name": "ModelDefinition",
934
939
  "kind": "InterfaceDeclaration",
935
940
  "signature": "export interface ModelDefinition {\n /** Optional whole-model material override; omitted keeps the asset's original materials. */\n material?: MaterialDefinition | string;\n /** Replace all asset material slots with the given exact material name. Mutually exclusive with material. */\n materialSlots?: Record<string, MaterialDefinition | string>;\n castShadow?: boolean;\n receiveShadow?: boolean;\n asset: AssetDefinition | string;\n scale?: number;\n offset?: Vec3;\n rotation?: Vec3;\n animation?: { clip: string; speed?: number; loop?: boolean };\n}",
936
- "line": 560,
941
+ "line": 562,
937
942
  "fields": [
938
943
  "material",
939
944
  "materialSlots",
@@ -950,7 +955,7 @@
950
955
  "name": "RigidBodyDefinition",
951
956
  "kind": "InterfaceDeclaration",
952
957
  "signature": "export interface RigidBodyDefinition {\n type: \"fixed\" | \"dynamic\" | \"kinematic\";\n collider: {\n shape: \"box\" | \"sphere\" | \"capsule\";\n size?: Vec3;\n radius?: number;\n halfHeight?: number;\n offset?: Vec3;\n };\n mass?: number;\n friction?: number;\n restitution?: number;\n trigger?: boolean;\n}",
953
- "line": 573,
958
+ "line": 575,
954
959
  "fields": [
955
960
  "type",
956
961
  "collider",
@@ -964,7 +969,7 @@
964
969
  "name": "CharacterDefinition",
965
970
  "kind": "InterfaceDeclaration",
966
971
  "signature": "export interface CharacterDefinition {\n radius: number;\n height: number;\n speed: number;\n jumpSpeed?: number;\n /** Downward acceleration magnitude in world units/s^2; defaults to 9.81. Scene.gravity is a signed vector. */\n gravity?: number;\n}",
967
- "line": 587,
972
+ "line": 589,
968
973
  "fields": [
969
974
  "radius",
970
975
  "height",
@@ -977,7 +982,7 @@
977
982
  "name": "UIElementDefinition",
978
983
  "kind": "InterfaceDeclaration",
979
984
  "signature": "export interface UIElementDefinition {\n id: string;\n kind: \"text\" | \"bar\" | \"button\" | \"input\";\n text?: string;\n value?: number;\n visible?: boolean;\n anchor?: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\" | \"center\";\n x?: number;\n y?: number;\n width?: number;\n color?: string;\n world?: { entity: string; offset?: Vec3; occlude?: boolean };\n}",
980
- "line": 595,
985
+ "line": 597,
981
986
  "fields": [
982
987
  "id",
983
988
  "kind",
@@ -996,7 +1001,7 @@
996
1001
  "name": "SoundDefinition",
997
1002
  "kind": "InterfaceDeclaration",
998
1003
  "signature": "export interface SoundDefinition {\n id: string;\n asset: AssetDefinition | string;\n volume?: number;\n loop?: boolean;\n bus?: string;\n}",
999
- "line": 608,
1004
+ "line": 610,
1000
1005
  "fields": [
1001
1006
  "id",
1002
1007
  "asset",
@@ -1009,7 +1014,7 @@
1009
1014
  "name": "AudioBusDefinition",
1010
1015
  "kind": "InterfaceDeclaration",
1011
1016
  "signature": "export interface AudioBusDefinition {\n id: string;\n volume?: number;\n}",
1012
- "line": 615,
1017
+ "line": 617,
1013
1018
  "fields": [
1014
1019
  "id",
1015
1020
  "volume"
@@ -1019,43 +1024,43 @@
1019
1024
  "name": "SYSTEM_PHASES",
1020
1025
  "kind": "constant",
1021
1026
  "signature": "SYSTEM_PHASES = [\n \"input\",\n \"prePhysics\",\n \"physics\",\n \"postPhysics\",\n \"update\",\n \"presentation\",\n] as const",
1022
- "line": 619
1027
+ "line": 621
1023
1028
  },
1024
1029
  {
1025
1030
  "name": "SystemPhase",
1026
1031
  "kind": "TypeAliasDeclaration",
1027
1032
  "signature": "export type SystemPhase = (typeof SYSTEM_PHASES)[number];",
1028
- "line": 627
1033
+ "line": 629
1029
1034
  },
1030
1035
  {
1031
1036
  "name": "Geometry",
1032
1037
  "kind": "TypeAliasDeclaration",
1033
1038
  "signature": "export type Geometry =\n | { kind: \"box\"; size?: Vec3 }\n | { kind: \"sphere\"; radius?: number; segments?: number }\n | { kind: \"plane\"; size?: readonly [number, number] };",
1034
- "line": 628
1039
+ "line": 630
1035
1040
  },
1036
1041
  {
1037
1042
  "name": "GRAPH_TYPES",
1038
1043
  "kind": "constant",
1039
1044
  "signature": "GRAPH_TYPES = [\"float\", \"vec2\", \"vec3\", \"vec4\", \"bool\"] as const",
1040
- "line": 632
1045
+ "line": 634
1041
1046
  },
1042
1047
  {
1043
1048
  "name": "GraphType",
1044
1049
  "kind": "TypeAliasDeclaration",
1045
1050
  "signature": "export type GraphType = typeof GRAPH_TYPES[number];",
1046
- "line": 633
1051
+ "line": 635
1047
1052
  },
1048
1053
  {
1049
1054
  "name": "GraphValue",
1050
1055
  "kind": "TypeAliasDeclaration",
1051
1056
  "signature": "export type GraphValue = number | boolean | Vec2 | Vec3 | Vec4;",
1052
- "line": 634
1057
+ "line": 636
1053
1058
  },
1054
1059
  {
1055
1060
  "name": "GraphParameter",
1056
1061
  "kind": "InterfaceDeclaration",
1057
1062
  "signature": "export interface GraphParameter {\n name: string;\n type: GraphType;\n default: GraphValue;\n}",
1058
- "line": 635,
1063
+ "line": 637,
1059
1064
  "fields": [
1060
1065
  "name",
1061
1066
  "type",
@@ -1066,31 +1071,31 @@
1066
1071
  "name": "GRAPH_INPUT_TYPES",
1067
1072
  "kind": "constant",
1068
1073
  "signature": "GRAPH_INPUT_TYPES = {\n uv: \"vec2\", uv1: \"vec2\", positionWorld: \"vec3\", normalWorld: \"vec3\",\n viewDirectionWorld: \"vec3\", vertexColor: \"vec4\", index: \"float\",\n screenSize: \"vec2\", texelSize: \"vec2\",\n pixelCoord: \"vec2\", outputSize: \"vec2\",\n positionLocal: \"vec3\", normalLocal: \"vec3\", vertexIndex: \"float\", instanceIndex: \"float\",\n} as const",
1069
- "line": 640
1074
+ "line": 642
1070
1075
  },
1071
1076
  {
1072
1077
  "name": "GraphInputName",
1073
1078
  "kind": "TypeAliasDeclaration",
1074
1079
  "signature": "export type GraphInputName = keyof typeof GRAPH_INPUT_TYPES;",
1075
- "line": 647
1080
+ "line": 649
1076
1081
  },
1077
1082
  {
1078
1083
  "name": "GRAPH_OPERATIONS",
1079
1084
  "kind": "constant",
1080
1085
  "signature": "GRAPH_OPERATIONS = {\n unary: [\"sin\", \"cos\", \"abs\", \"floor\", \"ceil\", \"fract\", \"negate\", \"saturate\", \"normalize\", \"length\", \"safeSqrt\"] as const,\n binary: [\"add\", \"subtract\", \"multiply\", \"safeDivide\", \"min\", \"max\", \"dot\", \"cross\", \"step\", \"lessThan\", \"lessEqual\", \"greaterThan\", \"greaterEqual\", \"equal\", \"and\", \"or\"] as const,\n ternary: [\"mix\", \"clamp\", \"smoothstep\", \"select\"] as const,\n} as const",
1081
- "line": 648
1086
+ "line": 650
1082
1087
  },
1083
1088
  {
1084
1089
  "name": "GraphNode",
1085
1090
  "kind": "TypeAliasDeclaration",
1086
1091
  "signature": "export type GraphNode =\n | { id: string; op: \"float\"; value: number }\n | { id: string; op: \"bool\"; value: boolean }\n | { id: string; op: \"vec2\"; value: Vec2 }\n | { id: string; op: \"vec3\"; value: Vec3 }\n | { id: string; op: \"vec4\"; value: Vec4 }\n | { id: string; op: \"time\" }\n | { id: string; op: \"input\"; name: GraphInputName }\n | { id: string; op: \"parameter\"; name: string }\n | { id: string; op: typeof GRAPH_OPERATIONS.unary[number] | \"not\"; inputs: readonly [string] }\n | { id: string; op: typeof GRAPH_OPERATIONS.binary[number]; inputs: readonly [string, string] }\n | { id: string; op: typeof GRAPH_OPERATIONS.ternary[number]; inputs: readonly [string, string, string] }\n | { id: string; op: \"compose2\"; inputs: readonly [string, string] }\n | { id: string; op: \"compose3\"; inputs: readonly [string, string, string] }\n | { id: string; op: \"compose4\"; inputs: readonly [string, string, string, string] }\n | { id: string; op: \"swizzle\"; inputs: readonly [string]; components: string }\n | { id: string; op: \"sampleTexture\"; inputs: readonly [string]; texture: AssetDefinition | string }\n | { id: string; op: \"readBuffer\"; inputs: readonly [string]; buffer: string }\n | { id: string; op: \"sampleFrame\"; inputs: readonly [string]; channel: string }\n | { id: string; op: \"sampleHistory\"; inputs: readonly [string]; channel: string };",
1087
- "line": 653
1092
+ "line": 655
1088
1093
  },
1089
1094
  {
1090
1095
  "name": "Graph",
1091
1096
  "kind": "InterfaceDeclaration",
1092
1097
  "signature": "export interface Graph {\n nodes: readonly GraphNode[];\n output: string;\n parameters?: readonly GraphParameter[];\n}",
1093
- "line": 673,
1098
+ "line": 675,
1094
1099
  "fields": [
1095
1100
  "nodes",
1096
1101
  "output",
@@ -1101,7 +1106,7 @@
1101
1106
  "name": "MaterialGraphs",
1102
1107
  "kind": "InterfaceDeclaration",
1103
1108
  "signature": "export interface MaterialGraphs {\n baseColor?: Graph;\n emissive?: Graph;\n roughness?: Graph;\n metalness?: Graph;\n opacity?: Graph;\n /** Absolute, unsided world-space normal; engine applies material boundary orientation. */\n normalWorld?: Graph;\n}",
1104
- "line": 678,
1109
+ "line": 680,
1105
1110
  "fields": [
1106
1111
  "baseColor",
1107
1112
  "emissive",
@@ -1115,7 +1120,7 @@
1115
1120
  "name": "VertexGraphs",
1116
1121
  "kind": "InterfaceDeclaration",
1117
1122
  "signature": "export interface VertexGraphs {\n /** Absolute object-local position after built-in morph, skin and instance transforms. */\n position?: Graph;\n /** Unsided object-local normal in the same domain; zero keeps the normalized input normal. */\n normal?: Graph;\n}",
1118
- "line": 687,
1123
+ "line": 689,
1119
1124
  "fields": [
1120
1125
  "position",
1121
1126
  "normal"
@@ -1125,7 +1130,7 @@
1125
1130
  "name": "MaterialInput",
1126
1131
  "kind": "InterfaceDeclaration",
1127
1132
  "signature": "export interface MaterialInput {\n id: string;\n color?: string;\n roughness?: number;\n metalness?: number;\n texture?: AssetDefinition | string;\n graph?: Graph;\n graphs?: MaterialGraphs;\n vertex?: VertexGraphs;\n buffers?: readonly MaterialBufferInput[];\n textures?: readonly MaterialTextureInput[];\n emissive?: string;\n emissiveIntensity?: number;\n opacity?: number;\n alphaTest?: number;\n side?: \"front\" | \"back\" | \"double\";\n /** Closed-volume dielectric fraction; opacity remains independent stochastic coverage. */\n transmission?: number;\n ior?: number;\n /** Nontransmissive dielectric specular strength in [0,1]. Defaults to 1. */\n specularIntensity?: number;\n /** Nontransmissive dielectric specular color, a hex or named sRGB color. Defaults to white. */\n specularColor?: string;\n attenuationColor?: string;\n /** World-space distance for Beer absorption; omitted means no absorption. */\n attenuationDistance?: number;\n}",
1128
- "line": 693,
1133
+ "line": 695,
1129
1134
  "fields": [
1130
1135
  "id",
1131
1136
  "color",
@@ -1154,7 +1159,7 @@
1154
1159
  "name": "MaterialDefinition",
1155
1160
  "kind": "InterfaceDeclaration",
1156
1161
  "signature": "export interface MaterialDefinition extends MaterialInput {\n readonly kind: \"material\";\n}",
1157
- "line": 720,
1162
+ "line": 722,
1158
1163
  "fields": [
1159
1164
  "kind"
1160
1165
  ]
@@ -1163,7 +1168,7 @@
1163
1168
  "name": "PostProcessInput",
1164
1169
  "kind": "InterfaceDeclaration",
1165
1170
  "signature": "export interface PostProcessInput {\n id: string;\n buffers?: readonly MaterialBufferInput[];\n textures?: readonly MaterialTextureInput[];\n /** Linear HDR vec4 output. Frame channels: scene.color, scene.normal, scene.depth, or an earlier pass ID. */\n graph: Graph;\n enabled?: boolean;\n}",
1166
- "line": 723,
1171
+ "line": 725,
1167
1172
  "fields": [
1168
1173
  "id",
1169
1174
  "buffers",
@@ -1176,7 +1181,7 @@
1176
1181
  "name": "PostProcessDefinition",
1177
1182
  "kind": "InterfaceDeclaration",
1178
1183
  "signature": "export interface PostProcessDefinition extends PostProcessInput {\n readonly kind: \"postprocess\";\n}",
1179
- "line": 731,
1184
+ "line": 733,
1180
1185
  "fields": [
1181
1186
  "kind"
1182
1187
  ]
@@ -1185,7 +1190,7 @@
1185
1190
  "name": "ComputeInput",
1186
1191
  "kind": "InterfaceDeclaration",
1187
1192
  "signature": "export interface ComputeInput {\n id: string;\n graph: Graph;\n outputType: GraphType;\n count: number;\n workgroupSize?: number;\n buffers?: readonly { name: string; type: GraphType }[];\n textures?: readonly ComputeTextureBinding[];\n}",
1188
- "line": 734,
1193
+ "line": 736,
1189
1194
  "fields": [
1190
1195
  "id",
1191
1196
  "graph",
@@ -1200,7 +1205,7 @@
1200
1205
  "name": "ComputeDefinition",
1201
1206
  "kind": "InterfaceDeclaration",
1202
1207
  "signature": "export interface ComputeDefinition extends ComputeInput {\n readonly kind: \"compute\";\n}",
1203
- "line": 743,
1208
+ "line": 745,
1204
1209
  "fields": [
1205
1210
  "kind"
1206
1211
  ]
@@ -1209,7 +1214,7 @@
1209
1214
  "name": "AssetInput",
1210
1215
  "kind": "InterfaceDeclaration",
1211
1216
  "signature": "export interface AssetInput {\n id: string;\n path: string;\n type: \"texture\" | \"binary\" | \"model\" | \"audio\";\n source?: string;\n license?: string;\n attribution?: string;\n /** Texture imports only; defaults to sRGB color. Data/normal/ORM textures use linear. */\n colorSpace?: \"srgb\" | \"linear\";\n}",
1212
- "line": 746,
1217
+ "line": 748,
1213
1218
  "fields": [
1214
1219
  "id",
1215
1220
  "path",
@@ -1224,7 +1229,7 @@
1224
1229
  "name": "AssetDefinition",
1225
1230
  "kind": "InterfaceDeclaration",
1226
1231
  "signature": "export interface AssetDefinition extends AssetInput {\n readonly kind: \"asset\";\n}",
1227
- "line": 756,
1232
+ "line": 758,
1228
1233
  "fields": [
1229
1234
  "kind"
1230
1235
  ]
@@ -1233,7 +1238,7 @@
1233
1238
  "name": "MeshDefinition",
1234
1239
  "kind": "InterfaceDeclaration",
1235
1240
  "signature": "export interface MeshDefinition {\n geometry: Geometry;\n material: MaterialDefinition | string;\n castShadow?: boolean;\n receiveShadow?: boolean;\n}",
1236
- "line": 759,
1241
+ "line": 761,
1237
1242
  "fields": [
1238
1243
  "geometry",
1239
1244
  "material",
@@ -1245,7 +1250,7 @@
1245
1250
  "name": "LightDefinition",
1246
1251
  "kind": "InterfaceDeclaration",
1247
1252
  "signature": "export interface LightDefinition {\n kind: \"directional\" | \"point\";\n color?: string;\n intensity?: number;\n castShadow?: boolean;\n target?: Vec3;\n shadow?: {\n mapSize?: number;\n extent?: number;\n bias?: number;\n normalBias?: number;\n near?: number;\n far?: number;\n };\n}",
1248
- "line": 765,
1253
+ "line": 767,
1249
1254
  "fields": [
1250
1255
  "kind",
1251
1256
  "color",
@@ -1259,7 +1264,7 @@
1259
1264
  "name": "EntityInput",
1260
1265
  "kind": "InterfaceDeclaration",
1261
1266
  "signature": "export interface EntityInput {\n id: string;\n prefab?: PrefabDefinition | string;\n parent?: string;\n transform?: TransformPatch;\n mesh?: MeshDefinition;\n light?: LightDefinition;\n model?: ModelDefinition;\n rigidBody?: RigidBodyDefinition;\n character?: CharacterDefinition;\n components?: readonly ComponentInstance[];\n}",
1262
- "line": 780,
1267
+ "line": 782,
1263
1268
  "fields": [
1264
1269
  "id",
1265
1270
  "prefab",
@@ -1277,7 +1282,7 @@
1277
1282
  "name": "PrefabInput",
1278
1283
  "kind": "InterfaceDeclaration",
1279
1284
  "signature": "export interface PrefabInput extends Omit<EntityInput, \"prefab\" | \"parent\"> {\n extends?: PrefabDefinition | string;\n}",
1280
- "line": 792,
1285
+ "line": 794,
1281
1286
  "fields": [
1282
1287
  "extends"
1283
1288
  ]
@@ -1286,7 +1291,7 @@
1286
1291
  "name": "PrefabDefinition",
1287
1292
  "kind": "InterfaceDeclaration",
1288
1293
  "signature": "export interface PrefabDefinition extends PrefabInput {\n readonly kind: \"prefab\";\n}",
1289
- "line": 795,
1294
+ "line": 797,
1290
1295
  "fields": [
1291
1296
  "kind"
1292
1297
  ]
@@ -1295,7 +1300,7 @@
1295
1300
  "name": "SceneInput",
1296
1301
  "kind": "InterfaceDeclaration",
1297
1302
  "signature": "export interface SceneInput {\n id: string;\n camera?: {\n position: Vec3;\n target: Vec3;\n fov?: number;\n near?: number;\n far?: number;\n };\n environment?: {\n background?: string;\n ambientIntensity?: number;\n lighting?: \"none\" | \"studio\";\n };\n follow?: {\n entity: string;\n distance?: number;\n height?: number;\n lookHeight?: number;\n yaw?: number;\n smoothing?: number;\n };\n gravity?: Vec3;\n entities: readonly EntityInput[];\n}",
1298
- "line": 798,
1303
+ "line": 800,
1299
1304
  "fields": [
1300
1305
  "id",
1301
1306
  "camera",
@@ -1309,7 +1314,7 @@
1309
1314
  "name": "SceneDefinition",
1310
1315
  "kind": "InterfaceDeclaration",
1311
1316
  "signature": "export interface SceneDefinition extends SceneInput {\n readonly kind: \"scene\";\n}",
1312
- "line": 823,
1317
+ "line": 825,
1313
1318
  "fields": [
1314
1319
  "kind"
1315
1320
  ]
@@ -1318,7 +1323,7 @@
1318
1323
  "name": "SystemInput",
1319
1324
  "kind": "InterfaceDeclaration",
1320
1325
  "signature": "export interface SystemInput {\n id: string;\n phase?: SystemPhase;\n before?: readonly string[];\n after?: readonly string[];\n reads?: readonly string[];\n writes?: readonly string[];\n structural?: boolean;\n run: (engine: SystemContext, dt: number) => void;\n}",
1321
- "line": 826,
1326
+ "line": 828,
1322
1327
  "fields": [
1323
1328
  "id",
1324
1329
  "phase",
@@ -1334,7 +1339,7 @@
1334
1339
  "name": "SystemDefinition",
1335
1340
  "kind": "InterfaceDeclaration",
1336
1341
  "signature": "export interface SystemDefinition extends SystemInput {\n readonly kind: \"system\";\n}",
1337
- "line": 836,
1342
+ "line": 838,
1338
1343
  "fields": [
1339
1344
  "kind"
1340
1345
  ]
@@ -1343,7 +1348,7 @@
1343
1348
  "name": "GameInput",
1344
1349
  "kind": "InterfaceDeclaration",
1345
1350
  "signature": "export interface GameInput {\n id: string;\n scene: SceneDefinition;\n systems?: readonly SystemDefinition[];\n components?: readonly ComponentDefinition[];\n prefabs?: readonly PrefabDefinition[];\n materials?: readonly MaterialDefinition[];\n computes?: readonly ComputeDefinition[];\n computeBuffers?: readonly ComputeBufferInput[];\n computeTextures?: readonly ComputeTextureInput[];\n assets?: readonly AssetDefinition[];\n scenes?: readonly SceneDefinition[];\n input?: Readonly<Record<string, readonly string[]>>;\n ui?: readonly UIElementDefinition[];\n sounds?: readonly SoundDefinition[];\n audioBuses?: readonly AudioBusDefinition[];\n render?: Partial<RenderSettings>;\n postProcesses?: readonly PostProcessDefinition[];\n}",
1346
- "line": 839,
1351
+ "line": 841,
1347
1352
  "fields": [
1348
1353
  "id",
1349
1354
  "scene",
@@ -1368,7 +1373,7 @@
1368
1373
  "name": "GameDefinition",
1369
1374
  "kind": "InterfaceDeclaration",
1370
1375
  "signature": "export interface GameDefinition extends GameInput {\n readonly kind: \"game\";\n}",
1371
- "line": 858,
1376
+ "line": 860,
1372
1377
  "fields": [
1373
1378
  "kind"
1374
1379
  ]
@@ -1377,7 +1382,7 @@
1377
1382
  "name": "GameInstance",
1378
1383
  "kind": "InterfaceDeclaration",
1379
1384
  "signature": "export interface GameInstance {\n update(dt: number): void;\n dispose(): void;\n}",
1380
- "line": 861,
1385
+ "line": 863,
1381
1386
  "fields": [
1382
1387
  "update",
1383
1388
  "dispose"
@@ -1387,61 +1392,61 @@
1387
1392
  "name": "defineComponent",
1388
1393
  "kind": "FunctionDeclaration",
1389
1394
  "signature": "export function defineComponent<const S extends ComponentSchema>(input: {\n id: string;\n schema: S;\n}): ComponentDefinition<S>;",
1390
- "line": 865
1395
+ "line": 867
1391
1396
  },
1392
1397
  {
1393
1398
  "name": "defineMaterial",
1394
1399
  "kind": "FunctionDeclaration",
1395
1400
  "signature": "export function defineMaterial(input: MaterialInput): MaterialDefinition;",
1396
- "line": 871
1401
+ "line": 873
1397
1402
  },
1398
1403
  {
1399
1404
  "name": "definePostProcess",
1400
1405
  "kind": "FunctionDeclaration",
1401
1406
  "signature": "export function definePostProcess(input: PostProcessInput): PostProcessDefinition;",
1402
- "line": 874
1407
+ "line": 876
1403
1408
  },
1404
1409
  {
1405
1410
  "name": "defineCompute",
1406
1411
  "kind": "FunctionDeclaration",
1407
1412
  "signature": "export function defineCompute(input: ComputeInput): ComputeDefinition;",
1408
- "line": 877
1413
+ "line": 879
1409
1414
  },
1410
1415
  {
1411
1416
  "name": "defineAsset",
1412
1417
  "kind": "FunctionDeclaration",
1413
1418
  "signature": "export function defineAsset(input: AssetInput): AssetDefinition;",
1414
- "line": 880
1419
+ "line": 882
1415
1420
  },
1416
1421
  {
1417
1422
  "name": "definePrefab",
1418
1423
  "kind": "FunctionDeclaration",
1419
1424
  "signature": "export function definePrefab(input: PrefabInput): PrefabDefinition;",
1420
- "line": 883
1425
+ "line": 885
1421
1426
  },
1422
1427
  {
1423
1428
  "name": "defineScene",
1424
1429
  "kind": "FunctionDeclaration",
1425
1430
  "signature": "export function defineScene(input: SceneInput): SceneDefinition;",
1426
- "line": 886
1431
+ "line": 888
1427
1432
  },
1428
1433
  {
1429
1434
  "name": "defineSystem",
1430
1435
  "kind": "FunctionDeclaration",
1431
1436
  "signature": "export function defineSystem(input: SystemInput): SystemDefinition;",
1432
- "line": 889
1437
+ "line": 891
1433
1438
  },
1434
1439
  {
1435
1440
  "name": "defineGame",
1436
1441
  "kind": "FunctionDeclaration",
1437
1442
  "signature": "export function defineGame(input: GameInput): GameDefinition;",
1438
- "line": 892
1443
+ "line": 894
1439
1444
  },
1440
1445
  {
1441
1446
  "name": "instantiateGame",
1442
1447
  "kind": "FunctionDeclaration",
1443
1448
  "signature": "export function instantiateGame(\n game: GameDefinition,\n engine: EngineFacade,\n): GameInstance;",
1444
- "line": 896
1449
+ "line": 898
1445
1450
  }
1446
1451
  ],
1447
1452
  "installedDeclarations": "lib/sdk/index.d.ts",