gitextract_ufpta25o/ ├── .gitignore ├── CHANGELOG.md ├── Gen/ │ └── Main.hs ├── LICENSE ├── README.md ├── api-spec.json ├── app/ │ └── Main.hs ├── client/ │ ├── babel.config.json │ ├── comic.json │ ├── eslint.config.js │ ├── loaders/ │ │ └── comic-image-loader.js │ ├── package.json │ ├── prettier.config.mjs │ ├── src/ │ │ ├── api.ts │ │ ├── components/ │ │ │ ├── BallPitMechanism.tsx │ │ │ ├── CenteredSlippyMap.tsx │ │ │ ├── Comic.tsx │ │ │ ├── ComicBrowseView.tsx │ │ │ ├── ComicImage.tsx │ │ │ ├── ComicPuzzleView.tsx │ │ │ ├── DebugOverlay.tsx │ │ │ ├── EditorTutorials.tsx │ │ │ ├── FullscreenComicContainer.tsx │ │ │ ├── InnerComicBorder.tsx │ │ │ ├── LoadingSpinner.tsx │ │ │ ├── MachineContext.tsx │ │ │ ├── MachineTileContext.tsx │ │ │ ├── MachineTileEditor.tsx │ │ │ ├── MachineTilePlaceholder.tsx │ │ │ ├── MetaMachineView.tsx │ │ │ ├── NamePrompt.tsx │ │ │ ├── PhysicsContext.tsx │ │ │ ├── SwooshyDialog.tsx │ │ │ ├── WidgetPalette.tsx │ │ │ ├── constants.tsx │ │ │ ├── moderation/ │ │ │ │ ├── BlueprintButton.tsx │ │ │ │ ├── ContextGridForMachineAt.tsx │ │ │ │ ├── LiveMachinePreview.tsx │ │ │ │ ├── ModMachineTileView.tsx │ │ │ │ ├── ModTileInputOutputView.tsx │ │ │ │ ├── Moderator.tsx │ │ │ │ ├── SelectTileForm.tsx │ │ │ │ ├── interestingWeights.ts │ │ │ │ ├── modTypes.d.ts │ │ │ │ ├── modUtils.ts │ │ │ │ └── moderatorClient.ts │ │ │ ├── positionStyles.ts │ │ │ ├── useLocationHashParams.tsx │ │ │ ├── useMetaMachineClient.ts │ │ │ └── widgets/ │ │ │ ├── Anvil.tsx │ │ │ ├── AttractorRepulsor.tsx │ │ │ ├── BallStand.tsx │ │ │ ├── Balls.tsx │ │ │ ├── Board.tsx │ │ │ ├── Boat.tsx │ │ │ ├── BottomChute.tsx │ │ │ ├── BottomPit.tsx │ │ │ ├── BottomTank.tsx │ │ │ ├── Brick.tsx │ │ │ ├── CatSwat.tsx │ │ │ ├── CircleGauge.tsx │ │ │ ├── Cup.tsx │ │ │ ├── Cushion.tsx │ │ │ ├── Fan.tsx │ │ │ ├── Hammer.tsx │ │ │ ├── Hook.tsx │ │ │ ├── InputOutput.tsx │ │ │ ├── LeftBumper.tsx │ │ │ ├── MachineFrame.tsx │ │ │ ├── OutputValidator.tsx │ │ │ ├── Prism.tsx │ │ │ ├── QuantumGate.tsx │ │ │ ├── RightBumper.tsx │ │ │ ├── RoundBumper.tsx │ │ │ ├── SpawnInput.tsx │ │ │ ├── Sticker.tsx │ │ │ ├── Sword.tsx │ │ │ ├── Wheel.tsx │ │ │ ├── index.tsx │ │ │ └── lib/ │ │ │ ├── ball.ts │ │ │ └── lineCuboid.ts │ │ ├── custom.d.ts │ │ ├── generated/ │ │ │ └── api-spec.d.ts │ │ ├── image.d.ts │ │ ├── index.ejs │ │ ├── index.tsx │ │ ├── lib/ │ │ │ ├── coords.ts │ │ │ ├── snapshot.tsx │ │ │ ├── tiles.tsx │ │ │ └── utils.ts │ │ ├── page/ │ │ │ ├── demo-editor.tsx │ │ │ ├── demo-map.tsx │ │ │ ├── demo-viewer.tsx │ │ │ ├── fixtures/ │ │ │ │ ├── demoMachine.tsx │ │ │ │ └── emptyMachine.tsx │ │ │ ├── moderator.tsx │ │ │ └── page.ejs │ │ └── types.ts │ ├── tsconfig.json │ └── webpack.config.js ├── config/ │ ├── incredible.toml │ └── machine.json ├── docs/ │ └── Main.hs ├── flake.nix ├── incredible.cabal ├── nix/ │ ├── deploy.nix │ ├── digital-ocean/ │ │ ├── digital-ocean-config.nix │ │ ├── digital-ocean-custom-image.nix │ │ └── make-single-disk-zfs-image.nix │ ├── incredible-cfg.nix │ ├── incredible-digital-ocean.nix │ ├── incredible-frontend.nix │ ├── incredible-qemu.nix │ ├── incredible-server.nix │ ├── profiles/ │ │ └── staging.nix │ └── users/ │ └── deploy.nix ├── src/ │ └── Incredible/ │ ├── API.hs │ ├── AntiEvil.hs │ ├── App.hs │ ├── Config.hs │ ├── Data.hs │ ├── DataStore/ │ │ ├── Memory.hs │ │ └── Redis.hs │ ├── DataStore.hs │ └── Puzzle.hs └── test/ └── Main.hs