====== ZXT Dictionary Format Specification (Draft) ====== The goal of the Dictionary is to provide a common format (officially distributed as a JSON file?) for documentation of extension behaviour. The cases are as follows: * Debugging utilities - printing out data about a ZXT world's extensions * Editors - allowing adding, editing and removing extensions in simple cases The hierarchy is roughly as follows: * owner (owner_id, name) * extension (selector_id, name, description, is_draft, is_deprecated) * flags (must/should/may/should not/must not, for each) * data (list of data values; each data value has a type; "blob" means it's not a type from the spec; also name, description, perhaps some allowed_values facility) * we need a way to specify conditional (if given data value = x, then some block of data values appears) * we need a way to specify iteration (block repeats [given data value] times) * let's focus on supporting the 90% cases - implementation can add special cases for particularly tricky extensions It might be a good idea to allow custom fields to be added, in a "custom": { ... } block for each extension?