External data comes in from these sources:
onScriptLoaded(subject data) - from pages/*.js
onLoadData(data) - from an external windows such as Sanskrit Keyboard
postMessage: window.addEventListener(“message”, function(e) {
flash.js reads the data to generate a new page and then passes data to Program object
from getCards data service
from localStorage
Data Portal:
program.loadData(data)
Card(quest) constructor
The incoming data object is external to the closure compiler,
and therefore references to it must use brackets-quoted-string notation.
We first pass the data object to program.loadData().
Here the data is pulled out and loaded into internal objects, and the original external data object is discarded.
The internal objects are then accessed by dot-notation.