Implement a bare-boned PlayerManager and event pipeline