Game object structure for Minecraft server
I would prefer your second plan, with inheritence and mixin modules.  I'll restate their different uses, which I am sure you know:


Use inheritance to model relationships between objects (B is a A).
Use mixins to model behavior (C logs, D remembers its position).


Unless you have a need to dynamically add mixins, apply YAGNI and don't do it yet.  Wait until you have a compelling need for dynamic mixins, and use them only where needed.  Metaprogramming is a power tool, but it does make the code harder to follow.  Use it judiciously.