I like the simplicity of the model, and there's no keys we've seen defined that aren't valid identifiers. We need some rules on what valid keys are.

I could see perhaps looking up the setters via a runtime annotation if the name doesn't match exactly.