contract names must not start with the dep: prefix
contract names must not contain any string looking like a wallet inside
contract names must not contain :
dynamically deployed contract names must not include .
TypeScript and JavaScript don't have "real" private properties / functions. So to make them private and protected start them with an underscore _ in the name. These are protected and must not be called.
Properties are uncallable by default
all functions can be called unless they are prefixed with _
General Rules
no imports of other contracts directly, you need to use the ecosystem API
every contract is pure, therefore
no network, file requests or other requests which could change over time