Making games for Ethereum, Part 1: Requirements and Limitations