Example outputs - http://lilypond.org/switch/tour
Example syntax - http://lilypond.org/switch/howto
Even the really good programs like Sibelius (and I guess Finale...) still have a ways to go in terms of accurate notation. Attempting to reduce notation to a JSON-style dataset seems, well, extraordinarily challenging.
I should think you could encode pitches, start times and durations in a JSON-style format without many problems.
Macros were invented by J.S. Bach.
Musical notation is often deliberately ambiguous to allow for interpretation. Tempo is often approximate. Durations are often approximate or implied (such as swing time). Volume is very approximate. And then there are various kinds of hinting. The hints need to be in the source code because nobody wants to specify them with more precision.
But that said, I'd be perfectly happy with something basic that runs in a browser.
Yeah, only music notation can get a lot more complex than these 3 factors
For a lot of people, the ability to do midi input is really important because when they write the music down a lot of the time they have to transcribe from their motions anyway. This is possibly more important than the actual explicit way that you write things down.