Page.html is the page sent to the browser when the control site is opened.
It is easy to customize to add or remove buttons, actions, clicks, etc. to your page.

The PC side of the program recognizes several actions.

Mouse messages are:
  start - start a trackpad movement
  move - continue a trackpad movement
  end - end a trackpad movement
All of the above take 2 arguments: x and y.
Each touch has a "seq" argument that starts at 0 and increments with each move, to avoid out-of-order movements.
Mouse movement is relative so don't worry about the absolute values.
X is positive left, and Y is positive down.

Mouse button messages are:
  click - click and release a mouse button
  toggle - toggle a mouse button to either the clicked or released state
Both take a single argument: "button", which can be any of "left", "right", "middle", or "x".

Mouse wheel is a single message type:
  wheel - command a mouse wheel movement
It takes two arguments: "axis" which is either "vert" or "horiz", and "delta" which is how far the wheel moves.
The default delta in Windows is 120.
Vert is positive away from the user, horiz is positive to the right.

Keyboard input has several message types:
  key - send a single keystroke via the numeric key code (argument "code")
  text - send raw typed text (argument "text", make sure to use encodeURIComponent() or similar)
  sendkeys - send typed text but escaped according to the SendKeys() method (argument "keys")
"key" can be used to send off keys such as media and IME keys not available through the other methods.  A full list of codes is here: https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
"text" sends raw text, such as those typed using the phone keyboard.
"sendkeys" send keystrokes, but can use modifiers or non-text keys using escape characters.  See more information here: https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualbasic.devices.keyboard.sendkeys