local map = {}

---@class (exact) Robot
---@field robot_id number
---@field position? PositionXYZ
---@field rotation? RotationYPR
---@field limits? RobotLimits

---@class (exact) Goal
---@field position? PositionXYZ
---@field rotation? RotationYaw
---@field radius? number
---@field height? number
---@field active? boolean

---@class (exact) Tree
---@field position? PositionXYZ
---@field rotation? RotationYaw
---@field scale? number
---@field variant? "A" | "B"

---@class (exact) PositionXYZ
---@field x? number
---@field y? number
---@field z? number

---@class (exact) RotationYPR
---@field yaw? number
---@field pitch? number
---@field roll? number

---@class (exact) RotationYaw
---@field yaw? number

---@class (exact) RobotLimits
---@field max_force? number
---@field max_linvel? number
---@field max_angvel? number

--- Spawns aerial vehicle with the given settings.
---@param options Robot
map.spawn_uav = function (options)
    -- internal
end

--- Spawns ground vehicle with the given settings.
--- @param options Robot
map.spawn_ugv = function (options)
    -- internal
end

--- Spawns goal with the given settings.
--- @param options Goal
map.spawn_goal = function (options)
    -- internal
end

--- Spawns tree with the given settings.
--- @param options Tree
map.spawn_tree = function (options)
    -- internal
end

return map
