Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
 CBehaviourParent class for all other behaviours
 CBehaviourTableA container for a block's behaviours
 CBreatheLEDsBehaviour that cycles all LEDs from full to minimum brightness and back at a speed specified as its argument
 CButtonEvent-driven button class
 CButtonClickedBehaviour that publishes a "ButtonClicked" message to the block's announcment topic of the MQQT broker
 CButtonHeldBehaviour that publishes a "ButtonHeld" message to the block's announcment topic of the MQQT broker
 CButtonPressedBehaviour that publishes a "ButtonPressed" message to the block's announcment topic of the MQQT broker
 CButtonReleasedBehaviour that publishes a "ButtonReleased" message to the block's announcment topic of the MQQT broker
 CButtonTickBehaviour that publishes a "ButtonTick" message to the block's announcment topic of the MQQT broker
 CkeyValuePairA structure to hold key:value paired data, similar to a python dictionary
 CLightAllLEDsBehaviour that lights up all the LEDs to a brightness specified as its argument
 CLightSomeLEDsBehaviour that lights up a number of LEDs specified as its argument
 CLinkExperimental Behaviour leverages the ability to deliver commands over serial. If a block is connected to another via TX -> RX pins, it can deliver this command and connected block will message the server that they have linked together. If the blocks unlink the behaviour will time out and an unlink message will be sent
 CNameDictionaryStorage and functionality for block naming
 CPingServerExperimental Behaviour that will regularly send a short message to the server so that the server knows the block is still online
 CPotentiometerPsuedo-event-driven potentiometer class. Events are split into stable and unstable updates to prevent flooding the mqtt channel with many messages while the slider is being set, while allowing for a local display element (i.e. an led) to give real-time feedback
 CPotentiometerUpdatedBehaviour that publishes a "PotentiometerUpdated" message to the block's announcment topic of the MQQT broker
 CRotaryEncoderEvent-driven rotary encoder class. Events are split into stable and unstable updates to prevent flooding the mqtt channel with many messages while the slider is being set, while allowing for a local display element (i.e. an led) to give real-time feedback
 CRotaryEncoderUpdatedBehaviour that publishes a "RotaryEncoderUpdated" message to the block's announcment topic of the MQQT broker
 CSendCapabilitiesBehaviour that publishes a series of messages listing all the the block's abilities to the block's announcment topic of the MQQT broker
 CServoGoAndReturnBehaviour that sets a servo to an angle before returning its position back to zero, for a number of cycles specified as its argument
 CServoGoToBehaviour that sets a servo to an angle specified as its argument
 CServoWiggleBehaviour that wiggles a servo with the sweep angle specified as its argument
 CVizBlockThe main VizBlock class