{
  "id": "bike",
  "name": "Bike guard",
  "file": "bike.ts",
  "headline": "If it moves, your code knows.",
  "description": "A motion event from your bike. An alert defined by you.",
  "blocks": [
    "motion"
  ],
  "additional_hardware": [
    "battery",
    "protective enclosure",
    "bike mount",
    "nearby phone or gateway"
  ],
  "connection": "Wi-Fi / phone hotspot → application; Bluetooth relay planned",
  "event": {
    "source": "simulation",
    "type": "bike.motion",
    "device_id": "demo-bike",
    "armed": true,
    "motion_detected": true,
    "connection": "gateway-online",
    "observed_at": "2026-10-29T12:00:00Z"
  },
  "result": "Motion detected while armed. Your app can raise an alert.",
  "trigger": "Move the bike",
  "prompt": "Build a bike movement alarm with arm/disarm controls, adjustable sensitivity and visible connection status. Start with the provided simulated motion event and show alerts locally. Remote notifications require a connected phone or gateway with internet access. Separate a mock adapter from future hardware access; do not imply GPS tracking.",
  "requirements": "Launch Motion Kit sends through Wi-Fi (including a suitable phone hotspot). A native Bluetooth phone relay is not released. Remote alerts require internet connectivity. Test background behaviour and battery life. Movement alerts are not GPS tracking or a replacement for a lock.",
  "pseudocode": [
    "on('bike.motion', (event) => {",
    "  if (event.armed)",
    "    notify('Your bike just moved.');",
    "});"
  ],
  "kit_id": "motion",
  "event_note": "Illustrative application-level event. Use /api/schema for the actual sensor ingestion contract."
}