You're right. I feel that this should be better documented, generally speaking. Taking your suggestion above about adding None fields and "unimplemented" methods, I think I'll add a base class form which `Scene` and `Shape` inherit, which will contain the only expected method.

This is, of course, entirely unenforced by Python and its duck typing discipline. But for didactic purposes it might make sense.