I think that the C2 programming "language" and environment is fantastic.
It's even driven paradigm, and its include sheets, allows programming constructions that are hard to accomplish in "traditional" languages, including Java and the like. It would be great if C3 could build on its strength and selectively (and carefully) add some "software engineering" constructs, to make larger code more maintainable.
This could include native support for state machines, making functions a first class entity, rather than string only, support and perhaps even named approaches to define, reuse, adapt (inherit?) event expressions.
I think a good example to think about is Wolfram's Mathematica, It's a functional language with which you can process list and recursive structures in a very elegant way.
Instead of say ("procedural code):
for each (ArrayA): ArrayA.currentValue>5, ArrayB.push(Array.currentValue)
you write (in functional pseudo code):
Push(ArrayB ,Select(x >5, ArrayA), ArrayB))
Or, sometimes, like this (using a pipe function "=>"):
Select(x >5, ArrayA) => Push(ArrayB)
— Thanks, the json plugin sounds very promising, to help with a path oriented approach to navigating to relevant data in hierarchical json structures.