Item components

JSON formatted. Like data tags but supports only  and   functions.

can_place_on
Controls what block types this block may be placed on.

can_destroy
Controls what block types this item can destroy.

Issues

 * Can only be applied to blocks.
 * Can not differentiate blocks by Data ID.
 * Can only whitelist blocks - not possible to blacklist instead. However you can use this to make something not able to break anything: {"minecraft:can_destroy":{"blocks":["air"]}}
 * Can only be used with and.