[{"data":1,"prerenderedAt":838},["ShallowReactive",2],{"doc:\u002Fgame-engine\u002Farchitecture":3,"surround:\u002Fgame-engine\u002Farchitecture":591,"navigation":602},{"id":4,"title":5,"body":6,"description":583,"extension":584,"meta":585,"navigation":586,"path":587,"seo":588,"stem":589,"__hash__":590},"docs\u002F01.game-engine\u002F04.architecture.md","Architektura",{"type":7,"value":8,"toc":574},"minimark",[9,14,25,224,228,232,257,264,361,376,394,398,405,411,415,421,425,475,511,515,552,560,564,570],[10,11,13],"h2",{"id":12},"warstwy","Warstwy",[15,16,22],"pre",{"className":17,"code":19,"language":20,"meta":21},[18],"language-text","┌───────────────┐   ┌──────────────────────────────┐   ┌──────────────────┐\n│  Kod gry      │   │            Engine            │   │     Adapter      │\n│  Sceny        │──▶│  Config + Time + EventBus    │──▶│ PhaserRenderLayer│──▶ Phaser.Game\n│  Komponenty   │   │  SceneManager  ObjectIndex   │   │ PhaserPhysics    │──▶ Arcade\n│  Obiekty      │   │  AssetManager  InputManager  │   │ PhaserCamera     │──▶ Camera\n└───────────────┘   │  PhysicsManager CameraManager│   │ PhaserInput      │──▶ Keyboard\n                    │  AudioManager   TweenManager │   │ PhaserAudio      │──▶ WebAudio\n                    └──────────────┬───────────────┘   │ PhaserAssets     │──▶ Loader\n                                   │                   └──────────────────┘\n                     core\u002Fports.ts (6 interfejsów)             │\n                                                               ▼\n                                                      ┌──────────────────┐\n                                                      │ WASM (opcjonalnie)│\n                                                      └──────────────────┘\n","text","",[23,24,19],"code",{"__ignoreMap":21},[26,27,28,44],"table",{},[29,30,31],"thead",{},[32,33,34,38,41],"tr",{},[35,36,37],"th",{},"Katalog",[35,39,40],{},"Zna Phasera",[35,42,43],{},"Zawartość",[45,46,47,80,94,116,135,164,190,205],"tbody",{},[32,48,49,55,58],{},[50,51,52],"td",{},[23,53,54],{},"core",[50,56,57],{},"nie",[50,59,60,63,64,63,67,63,70,63,73,63,76,79],{},[23,61,62],{},"Engine",", ",[23,65,66],{},"Scene",[23,68,69],{},"GameObject",[23,71,72],{},"Component",[23,74,75],{},"ObjectIndex",[23,77,78],{},"Time",", porty",[32,81,82,87,89],{},[50,83,84],{},[23,85,86],{},"components",[50,88,57],{},[50,90,91],{},[23,92,93],{},"Transform",[32,95,96,101,103],{},[50,97,98],{},[23,99,100],{},"animation",[50,102,57],{},[50,104,105,108,109,63,112,115],{},[23,106,107],{},"Easing"," (28 krzywych), ",[23,110,111],{},"Tween",[23,113,114],{},"TweenManager",", sekwencje",[32,117,118,123,125],{},[50,119,120],{},[23,121,122],{},"audio",[50,124,57],{},[50,126,127,130,131,134],{},[23,128,129],{},"AudioManager",", kanały, ",[23,132,133],{},"SoundHandle",", kolejka autoplay",[32,136,137,142,144],{},[50,138,139],{},[23,140,141],{},"systems",[50,143,57],{},[50,145,146,63,149,63,152,63,155,63,158,63,161],{},[23,147,148],{},"EventBus",[23,150,151],{},"AssetManager",[23,153,154],{},"InputManager",[23,156,157],{},"PhysicsManager",[23,159,160],{},"CameraManager",[23,162,163],{},"Logger",[32,165,166,171,173],{},[50,167,168],{},[23,169,170],{},"debug",[50,172,57],{},[50,174,175,63,178,63,181,63,184,63,187],{},[23,176,177],{},"LogBuffer",[23,179,180],{},"LogPanel",[23,182,183],{},"DebugViews",[23,185,186],{},"Profiler",[23,188,189],{},"Diagnostics",[32,191,192,197,199],{},[50,193,194],{},[23,195,196],{},"plugins",[50,198,57],{},[50,200,201,204],{},[23,202,203],{},"PluginHost",", rejestry, manifest, parser zakresów wersji",[32,206,207,212,218],{},[50,208,209],{},[23,210,211],{},"adapters",[50,213,214],{},[215,216,217],"strong",{},"tak",[50,219,220,223],{},[23,221,222],{},"PhaserAdapter"," + backendy i warstwa renderu",[10,225,227],{"id":226},"izolacja-adaptera","Izolacja adaptera",[229,230,231],"p",{},"Rdzeń nie importuje Phasera. Pilnują tego dwa mechanizmy:",[233,234,235,243],"ol",{},[236,237,238,239,242],"li",{},"Reguła ESLint ",[23,240,241],{},"no-restricted-imports",".",[236,244,245,246,249,250,253,254,242],{},"Test ",[23,247,248],{},"tests\u002Funit\u002FPublicApi.test.ts",", który skanuje źródła i wywala się na import Phasera lub katalogu ",[23,251,252],{},"adapters\u002F"," w ",[23,255,256],{},"core\u002F",[229,258,259,260,263],{},"Cały dostęp do runtime idzie przez sześć interfejsów z ",[23,261,262],{},"core\u002Fports.ts",":",[15,265,269],{"className":266,"code":267,"language":268,"meta":21,"style":21},"language-ts shiki shiki-themes github-light github-dark","interface RuntimeAdapter {\n  render: RenderPort\n  physics: PhysicsPort\n  camera: CameraPort\n  input: InputPort\n  audio: AudioPort\n  assets: AssetBackend\n}\n","ts",[23,270,271,288,300,311,322,333,344,355],{"__ignoreMap":21},[272,273,276,280,284],"span",{"class":274,"line":275},"line",1,[272,277,279],{"class":278},"szBVR","interface",[272,281,283],{"class":282},"sScJk"," RuntimeAdapter",[272,285,287],{"class":286},"sVt8B"," {\n",[272,289,291,295,297],{"class":274,"line":290},2,[272,292,294],{"class":293},"s4XuR","  render",[272,296,263],{"class":278},[272,298,299],{"class":282}," RenderPort\n",[272,301,303,306,308],{"class":274,"line":302},3,[272,304,305],{"class":293},"  physics",[272,307,263],{"class":278},[272,309,310],{"class":282}," PhysicsPort\n",[272,312,314,317,319],{"class":274,"line":313},4,[272,315,316],{"class":293},"  camera",[272,318,263],{"class":278},[272,320,321],{"class":282}," CameraPort\n",[272,323,325,328,330],{"class":274,"line":324},5,[272,326,327],{"class":293},"  input",[272,329,263],{"class":278},[272,331,332],{"class":282}," InputPort\n",[272,334,336,339,341],{"class":274,"line":335},6,[272,337,338],{"class":293},"  audio",[272,340,263],{"class":278},[272,342,343],{"class":282}," AudioPort\n",[272,345,347,350,352],{"class":274,"line":346},7,[272,348,349],{"class":293},"  assets",[272,351,263],{"class":278},[272,353,354],{"class":282}," AssetBackend\n",[272,356,358],{"class":274,"line":357},8,[272,359,360],{"class":286},"}\n",[229,362,363,364,367,368,371,372,375],{},"Nowy backend = sześć nowych implementacji. Metody opcjonalne są wykrywane przez ",[23,365,366],{},"supports*"," i wołane z ",[23,369,370],{},"?? false"," \u002F ",[23,373,374],{},"?? null",", więc minimalny adapter nie wywala się w runtime.",[377,378,381],"callout",{"title":379,"type":380},"GameObject to encja domenowa","info",[229,382,383,385,386,389,390,393],{},[23,384,69],{}," trzyma tagi, grupy, transform lokalny, hierarchię i komponenty oraz deskryptory ",[23,387,388],{},"render"," i ",[23,391,392],{},"body"," — nigdy instancję Phasera. Renderer dostaje deskryptor, nie obiekt sceny.",[10,395,397],{"id":396},"przepływ-klatki","Przepływ klatki",[229,399,400,401,404],{},"Kolejność faz ",[23,402,403],{},"internalUpdate"," sceny:",[15,406,409],{"className":407,"code":408,"language":20,"meta":21},[18],"applyPhysicsPositions        odczyt pozycji z fizyki\n→ tweenManager.update        tweeny mutują zwykłe właściwości\n→ komponenty input           faza wejścia\n→ Scene.update(dt)           logika gry\n→ komponenty behavior        zachowania\n→ komponenty physics         ciała\n→ komponenty animation       klatki animacji\n→ komponenty render          przygotowanie renderu\n→ kolejka pendingDestroy     usuwanie obiektów\n→ syncRender                 tylko obiekty brudne\n→ debug                      overlay, panel, profiler\n",[23,410,408],{"__ignoreMap":21},[10,412,414],{"id":413},"cykl-życia-obiektu","Cykl życia obiektu",[15,416,419],{"className":417,"code":418,"language":20,"meta":21},[18],"createObject → render.create → aktywacja w drzewie → aktualizacje\n→ destroyObject → potomkowie liść-pierwszy → component.onDestroy\n→ usunięcie z indeksu → render.destroy\n",[23,420,418],{"__ignoreMap":21},[10,422,424],{"id":423},"zasoby-i-zapisy","Zasoby i zapisy",[426,427,428,453],"ul",{},[236,429,430,433,434,437,438,441,442,445,446,449,450,242],{},[215,431,432],{},"Assety",": ",[23,435,436],{},"declareAssets"," → ",[23,439,440],{},"AssetManifest"," (id, duplikaty, referencje, budżet rozmiaru) → ",[23,443,444],{},"AssetBackend.load"," → statusy ",[23,447,448],{},"idle\u002Fqueued\u002Floading\u002Fready\u002Ffailed"," → refcount właściciela zwalniany w ",[23,451,452],{},"shutdown",[236,454,455,433,458,437,461,464,465,468,469,437,472,242],{},[215,456,457],{},"Zapisy",[23,459,460],{},"validateProject",[23,462,463],{},"exportProject"," (koperta + suma kontrolna) → ",[23,466,467],{},"ProjectRepository"," (tmp → odczyt zwrotny → backup → commit) lub ",[23,470,471],{},"PlayerSaveRepository",[23,473,474],{},"SaveStore",[229,476,477,479,480,63,483,63,486,63,489,63,492,495,496,499,500,503,504,507,508,242],{},[23,478,474],{}," to pięć metod (",[23,481,482],{},"read",[23,484,485],{},"write",[23,487,488],{},"remove",[23,490,491],{},"keys",[23,493,494],{},"clear","). ",[23,497,498],{},"SqlSaveStore"," przyjmuje dowolny obiekt z ",[23,501,502],{},"query(sql, params)"," — dzięki temu w bundlu gry nie ma ",[23,505,506],{},"pg"," ani ",[23,509,510],{},"mysql2",[10,512,514],{"id":513},"wydajność","Wydajność",[426,516,517,524,527,534,541],{},[236,518,519,520,523],{},"Brak alokacji w gorącej pętli poza jedną kopią listy subskrybentów w ",[23,521,522],{},"EventBus.emit"," i przebudową listy komponentów po zmianie struktury.",[236,525,526],{},"Render dostaje tylko obiekty brudne — scena z 79 obiektami wysyła w klatce zwykle 1–3.",[236,528,529,530,533],{},"Odczyt ",[23,531,532],{},"world"," jest O(1) po przeliczeniu; zmiana transformacji unieważnia tylko poddrzewo.",[236,535,536,537,540],{},"Aktualizacja komponentów: ",[215,538,539],{},"0,72 ms na klatkę dla 20 000 obiektów",", czyli ok. 0,07 ms dla 2 000.",[236,542,543,544,547,548,551],{},"Profiler jest wyłączony domyślnie — wtedy ",[23,545,546],{},"begin","\u002F",[23,549,550],{},"end"," zwracają się natychmiast.",[229,553,554,555,242],{},"Więcej w ",[556,557,559],"a",{"href":558},"\u002Fgame-engine\u002Fadvanced\u002Fperformance","Wydajność i benchmarki",[10,561,563],{"id":562},"decyzje-architektoniczne","Decyzje architektoniczne",[229,565,566,567,242],{},"Każda decyzja, której cofnięcie kosztowałoby więcej niż tydzień pracy, ma swój rekord ADR: izolacja adaptera, wersjonowany JSON, brak ECS, opcjonalny WASM, brak SPA fallback. Pełna lista: ",[556,568,563],{"href":569},"\u002Fgame-engine\u002Fadr",[571,572,573],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":21,"searchDepth":302,"depth":302,"links":575},[576,577,578,579,580,581,582],{"id":12,"depth":290,"text":13},{"id":226,"depth":290,"text":227},{"id":396,"depth":290,"text":397},{"id":413,"depth":290,"text":414},{"id":423,"depth":290,"text":424},{"id":513,"depth":290,"text":514},{"id":562,"depth":290,"text":563},"Warstwy silnika, izolacja adaptera przez porty, przepływ klatki, granice modułów i zasady wydajności, które pilnują testy.","md",{},true,"\u002Fgame-engine\u002Farchitecture",{"title":5,"description":583},"01.game-engine\u002F04.architecture","Wtr1Fw2ILImdBk-b7D-_cmncuEr09Goy6LZ0Sj4FPhY",[592,597],{"title":593,"path":594,"stem":595,"description":596,"children":-1},"Konfiguracja","\u002Fgame-engine\u002Fconfiguration","01.game-engine\u002F03.configuration","EngineConfig — wszystkie pola konfiguracji silnika z wartościami domyślnymi, walidacją i przykładami dla typowych setupów.",{"title":598,"path":599,"stem":600,"description":601,"children":-1},"Silnik i cykl życia","\u002Fgame-engine\u002Fcore\u002Fengine","01.game-engine\u002F05.core\u002F01.engine","createEngine, rejestracja scen, start, pauza, timeScale i sprzątanie. Pełna referencja API obiektu Engine z przykładami.",[603,710,771],{"title":604,"path":605,"stem":606,"children":607},"2D Game Engine","\u002Fgame-engine","01.game-engine\u002F01.index",[608,610,614,615,616,639,668,681,700,704,708],{"title":609,"path":605,"stem":606},"Przegląd",{"title":611,"path":612,"stem":613},"Szybki start","\u002Fgame-engine\u002Fgetting-started","01.game-engine\u002F02.getting-started",{"title":593,"path":594,"stem":595},{"title":5,"path":587,"stem":589},{"title":617,"path":618,"stem":619,"children":620,"page":638},"Rdzeń","\u002Fgame-engine\u002Fcore","01.game-engine\u002F05.core",[621,622,626,630,634],{"title":598,"path":599,"stem":600},{"title":623,"path":624,"stem":625},"Czas i pętla gry","\u002Fgame-engine\u002Fcore\u002Ftime","01.game-engine\u002F05.core\u002F02.time",{"title":627,"path":628,"stem":629},"Sceny","\u002Fgame-engine\u002Fcore\u002Fscenes","01.game-engine\u002F05.core\u002F03.scenes",{"title":631,"path":632,"stem":633},"Obiekty i komponenty","\u002Fgame-engine\u002Fcore\u002Fobjects","01.game-engine\u002F05.core\u002F04.objects",{"title":635,"path":636,"stem":637},"Zdarzenia i harmonogram","\u002Fgame-engine\u002Fcore\u002Fevents","01.game-engine\u002F05.core\u002F05.events",false,{"title":640,"path":641,"stem":642,"children":643,"page":638},"Systemy","\u002Fgame-engine\u002Fsystems","01.game-engine\u002F06.systems",[644,648,652,656,660,664],{"title":645,"path":646,"stem":647},"Zasoby (AssetManager)","\u002Fgame-engine\u002Fsystems\u002Fassets","01.game-engine\u002F06.systems\u002F01.assets",{"title":649,"path":650,"stem":651},"Wejście (InputManager)","\u002Fgame-engine\u002Fsystems\u002Finput","01.game-engine\u002F06.systems\u002F02.input",{"title":653,"path":654,"stem":655},"Fizyka (PhysicsManager)","\u002Fgame-engine\u002Fsystems\u002Fphysics","01.game-engine\u002F06.systems\u002F03.physics",{"title":657,"path":658,"stem":659},"Kamera (CameraManager)","\u002Fgame-engine\u002Fsystems\u002Fcamera","01.game-engine\u002F06.systems\u002F04.camera",{"title":661,"path":662,"stem":663},"Audio (AudioManager)","\u002Fgame-engine\u002Fsystems\u002Faudio","01.game-engine\u002F06.systems\u002F05.audio",{"title":665,"path":666,"stem":667},"Tweeny i easing","\u002Fgame-engine\u002Fsystems\u002Ftweens","01.game-engine\u002F06.systems\u002F06.tweens",{"title":669,"path":670,"stem":671,"children":672,"page":638},"Dane i zapisy","\u002Fgame-engine\u002Fdata","01.game-engine\u002F07.data",[673,677],{"title":674,"path":675,"stem":676},"Format projektu","\u002Fgame-engine\u002Fdata\u002Fproject-format","01.game-engine\u002F07.data\u002F01.project-format",{"title":678,"path":679,"stem":680},"Zapisy gry","\u002Fgame-engine\u002Fdata\u002Fsaves","01.game-engine\u002F07.data\u002F02.saves",{"title":682,"path":683,"stem":684,"children":685,"page":638},"Zaawansowane","\u002Fgame-engine\u002Fadvanced","01.game-engine\u002F08.advanced",[686,690,694,698],{"title":687,"path":688,"stem":689},"Pluginy","\u002Fgame-engine\u002Fadvanced\u002Fplugins","01.game-engine\u002F08.advanced\u002F01.plugins",{"title":691,"path":692,"stem":693},"WebAssembly","\u002Fgame-engine\u002Fadvanced\u002Fwasm","01.game-engine\u002F08.advanced\u002F02.wasm",{"title":695,"path":696,"stem":697},"Debugowanie","\u002Fgame-engine\u002Fadvanced\u002Fdebugging","01.game-engine\u002F08.advanced\u002F03.debugging",{"title":559,"path":558,"stem":699},"01.game-engine\u002F08.advanced\u002F04.performance",{"title":701,"path":702,"stem":703},"Wdrożenie","\u002Fgame-engine\u002Fdeployment","01.game-engine\u002F09.deployment",{"title":705,"path":706,"stem":707},"Przykłady","\u002Fgame-engine\u002Fexamples","01.game-engine\u002F10.examples",{"title":563,"path":569,"stem":709},"01.game-engine\u002F11.adr",{"title":711,"path":712,"stem":713,"children":714},"Reverse Proxy","\u002Freverse-proxy","02.reverse-proxy\u002F01.index",[715,716,719,722,743],{"title":609,"path":712,"stem":713},{"title":611,"path":717,"stem":718},"\u002Freverse-proxy\u002Fgetting-started","02.reverse-proxy\u002F02.getting-started",{"title":593,"path":720,"stem":721},"\u002Freverse-proxy\u002Fconfiguration","02.reverse-proxy\u002F03.configuration",{"title":723,"path":724,"stem":725,"children":726,"page":638},"Ruch i odporność","\u002Freverse-proxy\u002Ftraffic","02.reverse-proxy\u002F04.traffic",[727,731,735,739],{"title":728,"path":729,"stem":730},"Load balancing","\u002Freverse-proxy\u002Ftraffic\u002Fload-balancing","02.reverse-proxy\u002F04.traffic\u002F01.load-balancing",{"title":732,"path":733,"stem":734},"Health checks","\u002Freverse-proxy\u002Ftraffic\u002Fhealth-checks","02.reverse-proxy\u002F04.traffic\u002F02.health-checks",{"title":736,"path":737,"stem":738},"Circuit breaker i retry","\u002Freverse-proxy\u002Ftraffic\u002Fresilience","02.reverse-proxy\u002F04.traffic\u002F03.resilience",{"title":740,"path":741,"stem":742},"Rate limiting","\u002Freverse-proxy\u002Ftraffic\u002Frate-limiting","02.reverse-proxy\u002F04.traffic\u002F04.rate-limiting",{"title":744,"path":745,"stem":746,"children":747,"page":638},"Operacje i wdrożenie","\u002Freverse-proxy\u002Foperations","02.reverse-proxy\u002F05.operations",[748,752,756,760,763,767],{"title":749,"path":750,"stem":751},"Admin API","\u002Freverse-proxy\u002Foperations\u002Fadmin-api","02.reverse-proxy\u002F05.operations\u002F01.admin-api",{"title":753,"path":754,"stem":755},"Metryki i monitoring","\u002Freverse-proxy\u002Foperations\u002Fobservability","02.reverse-proxy\u002F05.operations\u002F02.observability",{"title":757,"path":758,"stem":759},"Bezpieczeństwo","\u002Freverse-proxy\u002Foperations\u002Fsecurity","02.reverse-proxy\u002F05.operations\u002F03.security",{"title":701,"path":761,"stem":762},"\u002Freverse-proxy\u002Foperations\u002Fdeployment","02.reverse-proxy\u002F05.operations\u002F04.deployment",{"title":764,"path":765,"stem":766},"Benchmarki","\u002Freverse-proxy\u002Foperations\u002Fbenchmarks","02.reverse-proxy\u002F05.operations\u002F05.benchmarks",{"title":768,"path":769,"stem":770},"Troubleshooting","\u002Freverse-proxy\u002Foperations\u002Ftroubleshooting","02.reverse-proxy\u002F05.operations\u002F06.troubleshooting",{"title":772,"path":773,"stem":774,"children":775},"Vector Engine","\u002Fvector-engine","03.vector-engine\u002F01.index",[776,777,780,801,814,834],{"title":609,"path":773,"stem":774},{"title":611,"path":778,"stem":779},"\u002Fvector-engine\u002Fgetting-started","03.vector-engine\u002F02.getting-started",{"title":781,"path":782,"stem":783,"children":784,"page":638},"Scena","\u002Fvector-engine\u002Fscene","03.vector-engine\u002F03.scene",[785,789,793,797],{"title":786,"path":787,"stem":788},"Format sceny 1.0","\u002Fvector-engine\u002Fscene\u002Fscene-format","03.vector-engine\u002F03.scene\u002F01.scene-format",{"title":790,"path":791,"stem":792},"Obiekty sceny","\u002Fvector-engine\u002Fscene\u002Fobjects","03.vector-engine\u002F03.scene\u002F02.objects",{"title":794,"path":795,"stem":796},"Gradienty i warstwy","\u002Fvector-engine\u002Fscene\u002Fgradients-layers","03.vector-engine\u002F03.scene\u002F03.gradients-layers",{"title":798,"path":799,"stem":800},"Przykłady scen","\u002Fvector-engine\u002Fscene\u002Fexamples","03.vector-engine\u002F03.scene\u002F04.examples",{"title":802,"path":803,"stem":804,"children":805,"page":638},"Eksport","\u002Fvector-engine\u002Fexport","03.vector-engine\u002F04.export",[806,810],{"title":807,"path":808,"stem":809},"Formaty eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-formats","03.vector-engine\u002F04.export\u002F01.export-formats",{"title":811,"path":812,"stem":813},"Proces eksportu","\u002Fvector-engine\u002Fexport\u002Fexport-workflow","03.vector-engine\u002F04.export\u002F02.export-workflow",{"title":815,"path":816,"stem":817,"children":818,"page":638},"Wnętrze silnika","\u002Fvector-engine\u002Finternals","03.vector-engine\u002F05.internals",[819,822,826,830],{"title":5,"path":820,"stem":821},"\u002Fvector-engine\u002Finternals\u002Farchitecture","03.vector-engine\u002F05.internals\u002F01.architecture",{"title":823,"path":824,"stem":825},"WebAssembly i workery","\u002Fvector-engine\u002Finternals\u002Fwasm","03.vector-engine\u002F05.internals\u002F02.wasm",{"title":827,"path":828,"stem":829},"Workspace i panele","\u002Fvector-engine\u002Finternals\u002Fworkspace","03.vector-engine\u002F05.internals\u002F03.workspace",{"title":831,"path":832,"stem":833},"Breakpointy","\u002Fvector-engine\u002Finternals\u002Fbreakpoints","03.vector-engine\u002F05.internals\u002F04.breakpoints",{"title":835,"path":836,"stem":837},"Wdrożenie na Vercel","\u002Fvector-engine\u002Fdeployment","03.vector-engine\u002F06.deployment",1793986307366]