If Objects are the core of the MysteryMachine scheme , then attributes are the workhorse. Attributes contain all the text and data which pulls a MysteryMachine System together.
Attributes have an informal type system ( this may change -see TypeSystem) and a structure all to themselves inside MysteryMachine.
For the most part attributes are the basic containers of the text which is used to create the documents which MysteryMachine generates, attributes are also the atomic unit of data reference in the system. Attributes are substituted into different contexts by the use of links..
from either end. Uniquely in the the MysteryMachine a bidilink consists of two attributes, one for either end. An unconnected BidiLink is known as an Anchor . The internal system goes to some efforts to keep the two Attributes synchronised.
- ExtendedText. (Not currently implemented)
- This extension of basic text , is the same as the above but includes a set of changes made to the final substituted text of the attribute
This final type has the unique property that it can be made Invalid, that is the attribute is made to fail Validation by an edit of another attribute belonging to a the same or a different object. This although perhaps counter intuitive to the user, allows editing of data in the System to which may be included in multiple places in different forms (say via ExtendedText Attributes). MysteryMachine will be able to either apply the changes correctly, or flag up the problem (Validation failure) for the user to manually correct
(Developers see AttributeInternals )