{
  "$schema": "https://mecha10.dev/schemas/model.schema.json",
  "name": "rover",
  "version": "1.0.0",
  "description": "Basic differential drive rover with box body, wheels, and RGB camera",
  "platform": "differential-drive",

  "metadata": {
    "author": "Mecha10 Team",
    "license": "MIT",
    "tags": ["rover", "wheeled", "differential-drive", "ground"]
  },

  "physical_properties": {
    "mass_kg": 15.0,
    "dimensions": {
      "length": 0.5,
      "width": 0.3,
      "height": 0.2,
      "unit": "meters"
    },
    "center_of_mass": {
      "x": 0.0,
      "y": 0.0,
      "z": 0.0
    }
  },

  "locomotion": {
    "type": "differential-drive",
    "max_linear_speed": 0.5,
    "max_angular_speed": 1.0,
    "acceleration": 2.0,
    "friction": 0.95,
    "wheel_base": 0.25,
    "wheel_radius": 0.05,
    "wheel_positions": [
      { "side": "left-front", "x": 0.15, "y": -0.125, "z": -0.1 },
      { "side": "left-rear", "x": -0.15, "y": -0.125, "z": -0.1 },
      { "side": "right-front", "x": 0.15, "y": -0.125, "z": 0.1 },
      { "side": "right-rear", "x": -0.15, "y": -0.125, "z": 0.1 }
    ]
  },

  "sensors": [
    {
      "name": "camera_front",
      "type": "camera_rgb",
      "mount_point": {
        "x": 0.25,
        "y": 0.15,
        "z": 0.0
      },
      "orientation": {
        "pitch": 0.0,
        "yaw": 0.0,
        "roll": 0.0
      },
      "properties": {
        "resolution": [640, 480],
        "fov_degrees": 60,
        "frame_rate": 10
      }
    },
    {
      "name": "imu",
      "type": "imu",
      "mount_point": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "orientation": {
        "pitch": 0.0,
        "yaw": 0.0,
        "roll": 0.0
      },
      "properties": {
        "update_rate_hz": 100,
        "noise_level": 0.01
      }
    }
  ],

  "appearance": {
    "body_color": {
      "r": 1.0,
      "g": 0.0,
      "b": 0.0,
      "a": 1.0
    },
    "wheel_color": {
      "r": 0.1,
      "g": 0.1,
      "b": 0.1,
      "a": 1.0
    }
  },

  "godot_scene": {
    "scene_file": "robot.tscn",
    "overrides": {
      "body": {
        "collision_shape": {
          "type": "BoxShape3D",
          "size": [0.5, 0.2, 0.3]
        },
        "mesh": {
          "type": "BoxMesh",
          "size": [0.5, 0.2, 0.3]
        }
      },
      "properties": {
        "max_linear_speed": 0.5,
        "max_angular_speed": 1.0,
        "acceleration": 2.0,
        "friction": 0.95
      }
    }
  }
}
