AI Design Requirements
Robust (graceful failure)
User defined environments
Understandable (to the player)
Expandable (code not just data)
machine independent
drop-in components
Eventual end user programming