Purchasables should be able to define the following: - What option attribute params they need when existing on a line item - Validation information on those attributes (type (int, string), dropdown options etc) For example the donation purchasable should be able to define the follow: - donationAmount (number/currency) required This would allow us to generate an add to cart UI specifically for that purchasable.