A constraint-based approach to ecological affordances | Synapse