Shuffleboard - Sending custom data to display in a custom widget?

Hey there!

I was trying to create a plugin for Shuffleboard to add my own custom data types and widgets to display them with. I followed the guides on the Shuffleboard wiki such as this one. But I’m confused as to how to use these newly defined data types and widgets with the Shuffleboard API on the robot end (classes like edu.wpi.first.wpilibj.shuffleboard.Shuffleboard). For example, if my plugin defines a Point2DType data type and a Point2DWidget which accepts them, how do I send a Point2D from the robot with WPILib, and have it displayed as a Point2DType in a Point2DWidget?

I figured that perhaps I can use ShuffleboardComponent.withWidget(String) with the fully-qualified class name of my widget, but have no idea how to send the custom data over and get a ShuffleboardComponent in the first place. Would I have to declare a Sendable of some kind?

Also, how would I add custom properties to my widget? The documentation says

Widget also defines a method for getting custom properties of the widget, which will be able to be modified by users; for example, a number slider’s orientation or range could be custom properties to allow user customization.

but doesn’t provide any detail on how to do so. It also says that AbstractWidget implements getProperties(), but after digging through the source code, I don’t see a method named getProperties() being defined or implemented anywhere.

Any help would be appreciated. Thanks!