Hey - good questions.
The exe wrapper is because we don't have access to a unix system for testing, and wanted to make sure that it was as simple as possible for at least the platform we knew it was working on. In the long term, we'll be wrapping it in native apps for Windows/Mac/Linux bundled with the jre so it Just Works, but we didn't want to spend too much time on deployment at this early stage.
The key field is used for indexing because ultimately (at least as the design is envisioned right now) it will be a composite key, something like "001-01" for encounterNumber&"-"&sceneNumber, and the order of the array will be essentially arbitrary.