There are two ways to define an item. A one liner, and a full on JSON object.
"input": "stone"
One liners can either be an item, or an ore dictionary tag. Internally, the string is interpreted as an item first, and if one doesn't exist, as an ore dictionary tag. In the case of conflicting tags (stone), it can be prefixed with 'ore:'
Objects are only interpreted as a specific item, but allows for more control (stack size and item damage)