{
  "schema": 1,
  "entryPoint": "game.mjs",
  "execution": "GPU LaTeX glyph drawing (original WebGPU draw.wgsl or shared WebGL2 adapter), JavaScript LaTeX layout, native symbolic WASM, compiled Morphing fields, existing VKF browser rigid-body physics reference",
  "scope": "Gaussian-integer game round; not the complete calculus/multiplayer concept",
  "goal": 12,
  "compatibility": "Operation + expression applies when both result components are exact integers. Principal root: sqrt(-1)=+i. Expression + expression bounces. Operations compose only into one supported simple operation or cancellation.",
  "indexing": "object-ID map and spatial grid for targets; cached native glyph layouts and indexed GPU instances",
  "sourceFiles": {
    "previews/math-life/ASSETS.json": "b715e4bdef01d37bbbaf78488d2062d786ed9f0baaf0b4238a33272b379253f9",
    "previews/math-life/MORPHING-LICENSE.txt": "6cd2adfa839b3c3e1e96635d81e89fff3658b21b073f1bb85e8db45d96ebc01d",
    "previews/math-life/MORPHING.json": "88392b16dfba7d4000678584a5df9a7699c2f6352c1b36ccbe9959e89f0b56f2",
    "previews/math-life/PHYSICS.json": "2631934a36a8805adc3ee0bee75750e293997436dedb6e01d1cc7e1dbd0a4e25",
    "previews/math-life/contacts.mjs": "f53b5758822d435a8a481ea15b4e32170e887e296da9018292f19d138140babb",
    "previews/math-life/game.css": "20e7336e95be1d9cf837684ab16da2553f05c058220bcb9a660eede6b1636074",
    "previews/math-life/game.mjs": "e3f5cfcc71ca4f038ebfc5e08fca166ae2a69b7d0412ae62744bd21796edd6f6",
    "previews/math-life/index.html": "b5a63bcd55109c54d3ad6fb40e6036b45606b2ee40e2ed8d7b0cd1f8e8092e3e",
    "previews/math-life/merge-kernel.glsl": "210e239e90316ecd8559b51c1c755c5e2af2b166a6fdcd9f3ac1ccde3ba4ade9",
    "previews/math-life/merge-kernel.wgsl": "6270aaa825f30b0f093d430767a2c692125313e1acc768392d315dacfd1cfbe1",
    "previews/math-life/merge.vkf": "188a887d1f3e32550e583be34946ffd16c25145b2f4da8a7541f010476913989",
    "previews/math-life/morph-renderer.mjs": "d17558fec42e814915eca33686236ecc0a9ead1941c0d77d9fd891a4334dfe8c",
    "previews/math-life/motion.mjs": "a10a68a677b4c5f1e133dd7890670c06e2f80b41a34b21907680fb54efadb7a9",
    "previews/math-life/palette-keys.json": "ad6fd5b4d943e04081273894a8ea1e887da12434728de07c35999969c31354e4",
    "previews/math-life/physics.mjs": "5f431486cfe3dd4d8073223a9d4ea0805a4ebcfa4f2d9af7182734c0368f2dd5",
    "previews/math-life/renderer.mjs": "91f403a0b579363bc86540f1466a91e80ef735fa77d1e762b5cbbcaff2e1a676",
    "previews/math-life/route.mjs": "2dd8db785a345faab4350725e83a7341279447c655aa2b91eec9123aa8cecb2f",
    "previews/math-life/rules.mjs": "664e0fe2b436d13cccf7532959951ed966c5aed4a0755ae3b78b8013f197792a",
    "previews/math-life/wave-atlas.rgba.gz": "e8e310f47aeebd2d5eff8f45cf0adf8762b3f972562114b75587b801d7acde7e",
    "previews/math-life/wave-data.json.gz": "3e117d76698218c94cd606992893e7557090787c1bd2168e3ec61276b86201c8"
  },
  "dependencies": {
    "vf-ui/artifacts/vkf-symbolic-kernel.wasm": "129d2a183a4f73c4c56c9df50872bae21b5f2337e24a028a83609e620f2474dd",
    "vf-ui/artifacts/vkf-symbolic-kernel.json": "159cde98e88c43f9073823bbb0cd14c388470d814fb5f6fba1b4ca228f3e70fb",
    "vf-ui/vf-symbolic-kernel-runtime.mjs": "eefc2f37d1ee14c83992bc0ef2734a082eacb900a297df5b09c39d2967de1caa",
    "previews/gpu-math-typing/text-flow.mjs": "c8fb1c7d2dde0a9ad3306e2de4eed8ff4e9210ce6b1e358ea0bf6cc909b781c7",
    "previews/gpu-math-typing/latex-instances.mjs": "99aa4686cd1093be82416b65428809407a510c9227e064625692a9b9a0ab9495",
    "previews/gpu-math-typing/latex-gpu-renderer.mjs": "bea9d56f812f9180602771e3d9fd0f1dd76e414d4b6825f0e9d8f57fb8846913",
    "previews/gpu-math-typing/latex-webgl-renderer.mjs": "153f3d554f83ca00cf729fcfff4b891b666d5701198afa44c4dd0cb159e7315c",
    "previews/gpu-math-typing/draw.wgsl": "76193f1f885a73d8c90feb2018c5ad295b3d709682683a0e6c3f3b235e0338dd",
    "vf-ui/vf-physics-engine.mjs": "526b318080c6ba9ec1a115a8e364188b41bab1918db1bbb867443805120f1620"
  },
  "exactness": "Native symbolic evaluation of real components, independently guarded by exact BigInt Gaussian arithmetic and integer-square-root witnesses. Both result components must be safe integers.",
  "contacts": "Indexed compatibility detection routes valid contacts into morphology. VKF resolves rejected contacts and whole-world constraints; held objects are authored as kinematic bodies. Impossible grab targets yield to VKF zero-time projection of finite masses; they cannot force overlaps against walls.",
  "viewport": "fixed visual-viewport shell, no document scrolling or surface touch panning",
  "morphology": "native Morphing field.union and segment.value; immutable native LaTeX glyph packets resident on GPU; geometric operation absorption and expression-to-result stroke deformation",
  "motion": "Timed 32-sample pointer ring; recent 100 ms release velocity including hold-to-stop; throws capped at 1600 CSS pixels/second; no free damping; adaptive contact substeps; elastic area-weighted bounces; area-weighted merge velocity; explicit throws work in reduced motion.",
  "physics": "The unchanged packaged VKF stepRigidPolygonWorld2D runtime owns motion, wall constraints, exact-circle contacts and impulses. physics.mjs only maps game objects. This is its JavaScript browser reference, not compiled native/WASM/GPU physics."
}
