I have created structure with 16 elements and received solidity compiler error.
Exception during compilation: /src/libsolidity/../libevmasm/Instruction.h(217): Throw in function dev::solidity::Instruction dev::solidity::swapInstruction(unsigned int) Dynamic exception type: N5boost16exception_detail10clone_implIN3dev8solidity13InvalidOpcodeEEE std::exception::what: InvalidOpcode [PN3dev11tag_commentE] = Invalid SWAP instruction requested.
How do you get around situation like this? The contract compiles fine if structure has 15 or less elements.
I was thinking about storing multiple values in form of JSON string in one variable, but this gets cumbersome as each datatype has to be first converted to bytes and then it can be concatenated.