/// @brief A primitive representing a cube or rectangular prismstructCubePrimitive{/// @brief Position of the center of the cube and orientation of the cube std::optional<Pose> pose;/// @brief Size of the cube along each axis std::optional<Vector3> size;/// @brief Color of the cube std::optional<Color> color;/// @brief Encoded the CubePrimitive as protobuf to the provided buffer.////// On success, writes the serialized length to *encoded_len./// If the provided buffer has insufficient capacity, writes the required capacity to *encoded_len/// and returns FoxgloveError::BufferTooShort./// If the message cannot be encoded, writes the reason to stderr and returns/// FoxgloveError::EncodeError.////// @param ptr the destination buffer. must point to at least len valid bytes./// @param len the length of the destination buffer./// @param encoded_len where the serialized length or required capacity will be written to. FoxgloveError encode(uint8_t* ptr, size_t len, size_t* encoded_len);/// @brief Get the CubePrimitive schema.////// The schema data returned is statically allocated.static Schema schema();};