Add component.json.

Same as #5, but squashed.