The solution is to use the <endpoint /> component. It has an open attribute that defaults to false (so it renders as a filled circle by default). If you specify open or open="true", then it renders as an open circle.
For example, <endpoint open>(3,4)</endpoint> will render an open circle at (3,4). <endpoint>(5,6)</endpoint> (or equivalently <endpoint open="false">(5,6)</endpoint>) will render a closed circle at (5,6).
The piecewise function does not yet have the ability to render open or closed circles. You’d need to add the <endpoint> outside the piecewise function and then it will add them on top. The piecewise function component can currently just draw curves.