// Copyright (c) 2025 Junior Sundar
//
// SPDX-License-Identifier: BSD-3-Clause
use crate;
use Arc;
/// Encapsulates the definition of a complete motion planning problem.
///
/// This struct brings together all the necessary components that define a planning problem: the
/// space in which to plan, one or more start states, and the goal condition. It is passed to a
/// `Planner`'s `setup` method to configure it for a specific task.
///
/// The fields use `Arc` to allow for safe, shared ownership of the space and goal definitions,
/// which might be referenced by multiple parts of the planning process.