This is a document defining the data structures to be used with KonOpas, i.e. the format for the JSONP-formatted files that make up the programme database. These file(s) will be included with <script> tags, and will need to define up to three variables: program (necessary), people (optional), and updates (not yet implemented).
This is a work in progress, so stuff may still change at any time.
“tags” may include any number of programme tracks or other classifying indicators. We may want to add an indicator for those classifiers that should not be listed when the item is viewed in detail, eg. a backtick ` as the first character of the string.
“loc” is similarly expandable.
We should avoid complications related to programme items that go on past midnight, or which have a starting time past midnight, and therefore include “time” for the start time and measure duration in minutes (with 0 for unknown or n/a).
At least “desc” for program.js and “bio” for people.js need to support HTML tags, which may not be supported elsewhere (though they’ll probably be fine).
“name” is a different field in program.js’s “people” and in people.js; in the former it’s ready to print whereas in the latter it’s an array [ "First", "Last", "Prefix", "Suffix" ] with fields possibly left as empty strings or left out completely.
The possible fields of “links” should not be predetermined.
Unlike program and people, updates is an associative array, keyed first by the name of the array being modified, and second by the ID of the item in question. Unchanged fields are not included, and deletions are represented by an empty value of the appropriate type ({}, [], or “”). Programme items or participants that were not previously listed should include a value “new” that equates to true.
The example above shows “Andhis Friend, Jr.” being removed completely from the programme. In the “A Really Cool Item Title” item he is replaced by “Sir Galahad”, which item is also renamed as “A Stupendous Item Title”. “An Interview with the Knight of Honour” has also been moved to start earlier, in “A bigger Room” rather than “Another Room”. The vacated slot is taken by a new item, “The Knight of Honour Reads a Story”.