I'd add:
- program distribution should decouple the sender and receiver, so that the receive can identify and verify the sender identity but the sender cannot get any information about the receiver (except those the sender consciously decide to share, eg by signing a contract)
- each program execution should be a conscious decision of the user
This means no automatic execution of #JS or #WASM in a browser that people use mainly to read text.