Spell Programmer

The Spell Programmer is a block added by Psi. It is used to create and modify spells to be loaded on Spell Bullets.

Usage
Right-clicking on the Programmer (while not holding a Spell Bullet or a Psimetal tool) will open its GUI. The elements on the GUI are as follows:
 * Top: Name of the currently selected Spell Piece.
 * Top-left: Icon for the currently selected Casting Assistant Device (CAD). If there is a green checkmark the spell is valid and can be loaded onto a Bullet. If it is a red "X" there is an error somewhere in the spell. Hovering over it will show which cell has a problem.
 * Middle: The spell field. Right-click on a cell to access all the spell pieces currently unlocked.
 * Left: The Config window. Only appears when a Spell Piece that has parameters is selected.
 * Bottom: The spell's name. Can be edited.
 * Right:
 * Stats (in descending order):
 * Complexity: Number of actions a spell has.
 * Potency: Power of the spell. More powerful spells will require higher-tier Assembly material.
 * Cost: Amount of Psi needed to cast the spell.
 * Projection: Number of tricks a spell can have.
 * Bandwidth: Area that a spell occupies in a square.
 * Programmer Help: hold Shift while hovering over it to see all available hotkeys.
 * Export to Clipboard: Shift-clicking will export the spell's composition from the spell field onto the clipboard.
 * Import from Clipboard: Shift-clicking will import the spell's composition from the clipboard onto the spell field.

Right-clicking on the Programmer while holding a Spell Bullet or a Psimetal tool will load the current spell on the Programmer onto the Bullet or tool.

Shift right-clicking on the Programmer while holding a CAD will overwrite the current spell on the Bullet with the one on the Programmer.