{
  "hero": {
    "badge": "Open Source - MIT",
    "title": "Multiplayer Game Server SDK",
    "subtitle": "Authoritative physics, deterministic netcode, hot reload, and singleplayer — all in one JavaScript SDK. Ship multiplayer games without rebuilding the engine.",
    "cta_demo": "Try the Demo",
    "cta_npm": "npm install spoint",
    "demo_href": "./demo.html",
    "npm_href": "https://www.npmjs.com/package/spoint"
  },
  "features": [
    {
      "icon": "srv",
      "title": "Authoritative Server",
      "desc": "128 TPS server-side simulation. Clients never trust themselves. Input prediction + server reconciliation keep play fair and snappy."
    },
    {
      "icon": "phys",
      "title": "Jolt Physics",
      "desc": "Full Jolt Physics WASM integration. Rigid bodies, convex hulls, trimesh terrains, character controllers — spatial LOD suspends off-screen bodies automatically."
    },
    {
      "icon": "hot",
      "title": "Hot Reload",
      "desc": "Edit app code and physics configs live. File watchers reload modules mid-session with exponential backoff. No server restart required."
    },
    {
      "icon": "app",
      "title": "App System",
      "desc": "Composable entity-app model. Each entity runs an isolated app with setup, update, onEvent, render, and onInteract lifecycle hooks."
    },
    {
      "icon": "web",
      "title": "Browser Singleplayer",
      "desc": "Full server runs inside a Dedicated Web Worker — same physics, same netcode, zero backend. Ship offline and online from the same codebase."
    },
    {
      "icon": "vr",
      "title": "Editor + VR",
      "desc": "Built-in scene editor with gizmos, snap controls, and Monaco code editor. WebXR support for immersive VR sessions alongside normal clients."
    }
  ],
  "architecture": {
    "title": "How it fits together",
    "subtitle": "Three runtime modes, one API surface.",
    "layers": [
      {
        "label": "Your Game Code",
        "detail": "apps/  entity lifecycle hooks",
        "color": "#10b981"
      },
      {
        "label": "spoint SDK",
        "detail": "TickSystem - AppRuntime - EventBus",
        "color": "#3b82f6"
      },
      {
        "label": "Jolt Physics WASM",
        "detail": "rigid bodies - characters - trimesh",
        "color": "#8b5cf6"
      },
      {
        "label": "Transport Layer",
        "detail": "WebSocket - WebRTC - Worker postMessage",
        "color": "#f59e0b"
      }
    ],
    "modes": [
      {
        "name": "Node.js Server",
        "icon": "node",
        "desc": "Production multiplayer"
      },
      {
        "name": "Browser Worker",
        "icon": "web",
        "desc": "Singleplayer / hosting"
      },
      {
        "name": "WebRTC Peer",
        "icon": "rtc",
        "desc": "P2P with browser host"
      }
    ]
  },
  "cta": {
    "snippet": "import { createServer } from 'spoint'\n\nconst server = createServer({ tickRate: 64, port: 3001 })\nawait server.start()",
    "install": "npm install spoint",
    "github_href": "https://github.com/AnEntrypoint/spoint",
    "docs_label": "Read the docs on GitHub ->"
  }
}
