{
  "$schema": "https://pointcast.xyz/for-agents",
  "generatedAt": "2026-11-03T03:11:45.931Z",
  "name": "Kite Line",
  "kind": "game",
  "genre": "Physics flying game",
  "status": "live in the browser, no account, nothing to buy",
  "human": "https://pointcast.xyz/kite-line",
  "json": "https://pointcast.xyz/kite-line.json",
  "pitch": "Fly a kite off the sand in a wind that never blows the same way twice. The line hums with tension. Keep it up.",
  "how": [
    "Drag up and down to reel line in and give it out. With the beach focused, hold Up to reel in and Down to give line. Space or PAUSE FLIGHT pauses; a hidden tab pauses too.",
    "Reel in through a lull to keep it climbing, but line runs out. Give line when a big gust hits or it knocks the kite down. Reel in a dead calm and it stalls. Touch the sand and the flight is over.",
    "The line's hum rises with tension. Time aloft is your score; the best flight stays in this browser."
  ],
  "forAgents": "The JSON gives the wind model (seeded gusts, lulls, a sea breeze that builds) and the scoring rule.",
  "place": "Dockweiler State Beach runs along the west edge of El Segundo, under the departures, with an afternoon sea breeze.",
  "credits": {
    "direction": "Michael Hoydich, 2026-11-02: \"make 10 new pointcast areas ... be inventive\"",
    "build": "Claude Code, 2026-11-02",
    "note": "Original rules, art drawn in code, sound synthesized with the Web Audio API. No recordings, no copied sprites."
  },
  "privacy": "The room tools do not upload cards, drawings, patterns or scores. Saves use browser localStorage; Pelican Post discards its words. Optional site Room presence shares cursors and chat when enabled; it is absent from Pelican Post.",
  "wind": {
    "breeze": "starts at 1.2 and builds by up to 1.4 over the first 40 seconds, like an afternoon sea breeze",
    "gusts": "three overlapping sine waves at different speeds with a random phase per session; never below 0.15"
  },
  "flight": {
    "controls": {
      "drag": "up reels line in, down gives line out",
      "keys": "with beach focused, Up reels in, Down gives, Space pauses/resumes",
      "pause": "Pause flight button; background tabs pause the flight"
    },
    "lift": "wind alone keeps the kite up only above about 1.45; reeling in adds lift until the line is down to 60",
    "stall": "reeling hard while the wind is under 0.35 stalls the kite and it drops",
    "overpower": "a gust over 2.9 knocks a held kite down unless you are giving line",
    "lineLength": {
      "min": 60,
      "max": 420
    },
    "over": "the kite touches the sand",
    "score": "seconds aloft; best kept in localStorage key kite-line:best",
    "sound": "a band-passed sawtooth hum whose pitch and level follow line tension"
  },
  "links": {
    "hub": "https://pointcast.xyz/ten-doors",
    "hubJson": "https://pointcast.xyz/ten-doors.json",
    "siblings": [
      "https://pointcast.xyz/takeoff-organ",
      "https://pointcast.xyz/refinery-lights",
      "https://pointcast.xyz/meter-oracle",
      "https://pointcast.xyz/drum-round",
      "https://pointcast.xyz/pelican-post",
      "https://pointcast.xyz/green-flash",
      "https://pointcast.xyz/chalk-score",
      "https://pointcast.xyz/ice-cream-route",
      "https://pointcast.xyz/tide-pool-census"
    ],
    "pointcast": "https://pointcast.xyz/"
  }
}