About prototypes and protypal inheritance
One feature familiar to many from object-oriented programming is prototypal inheritance. Once you make a prototype object, you can then make new instances that inherit the values of that prototype’s attributes. If I make a prototype note and name it red_note, I can then make instance-notes of red_note (which are actually just notes that have their $Prototype
attribute set to the string "red_note"). If I then set any attribute value (besides those that ought to change on a per-note basis, such as a note’s height, width, position, parent note, unique ID, outline-depth, outline-order, and sibling order) of the prototype, every instance (that is, every the red-note) inherits that change as well.
Prototypes are also good ways for referring to notes—an attribute that is already semantically meaningful as a class. Notes of the same functional or ontological type ought to share the same prototype. BoxPress templates discriminate among prototypes in order to do their work.