Examples
Input: ({'collectionName': 'MyCollection', 'traits': [{'name': 'Background', 'values': ['Blue', 'Red']}, {'name': 'Eyes', 'values': ['Normal', 'Laser']}], 'n': 3, 'seed': 42},)
Expected Output: [{'name': 'MyCollection #1', 'attributes': [{'trait_type': 'Background', 'value': 'Blue'}, {'trait_type': 'Eyes', 'value': 'Laser'}]}, {'name': 'MyCollection #2', 'attributes': [{'trait_type': 'Background', 'value': 'Red'}, {'trait_type': 'Eyes', 'value': 'Laser'}]}, {'name': 'MyCollection #3', 'attributes': [{'trait_type': 'Background', 'value': 'Blue'}, {'trait_type': 'Eyes', 'value': 'Normal'}]}]
Explanation: There are 4 unique combinations. With seed 42, the deterministic index sequence produced by the reference solution is 2, 3, 0, which decodes to the three metadata objects shown.
Input: ({'collectionName': 'Dupes', 'traits': [{'name': 'Color', 'values': ['Gold', 'Gold', 'Silver']}, {'name': 'Hat', 'values': ['Cap', 'None']}], 'n': 4, 'seed': 1},)
Expected Output: [{'name': 'Dupes #1', 'attributes': [{'trait_type': 'Color', 'value': 'Silver'}, {'trait_type': 'Hat', 'value': 'Cap'}]}, {'name': 'Dupes #2', 'attributes': [{'trait_type': 'Color', 'value': 'Gold'}, {'trait_type': 'Hat', 'value': 'Cap'}]}, {'name': 'Dupes #3', 'attributes': [{'trait_type': 'Color', 'value': 'Silver'}, {'trait_type': 'Hat', 'value': 'None'}]}, {'name': 'Dupes #4', 'attributes': [{'trait_type': 'Color', 'value': 'Gold'}, {'trait_type': 'Hat', 'value': 'None'}]}]
Explanation: The duplicate 'Gold' value does not create extra uniqueness. After deduplication there are 2 x 2 = 4 unique combinations, and all 4 are generated exactly once.
Input: ({'collectionName': 'Small', 'traits': [{'name': 'Body', 'values': ['Robot']}, {'name': 'Mood', 'values': ['Happy', 'Sad']}], 'n': 3, 'seed': 7},)
Expected Output: 'ERROR'
Explanation: Only 1 x 2 = 2 unique combinations exist, so requesting 3 NFTs is impossible.
Input: ({'collectionName': 'Blank', 'traits': [], 'n': 1, 'seed': 9},)
Expected Output: [{'name': 'Blank #1', 'attributes': []}]
Explanation: With no trait categories, there is exactly one valid NFT: the empty combination of attributes.