Convert scene/tile, renderable, and media data holders to Kotlin (Phase 4)
17 files: VertexNormal, ModelHeader, Renderable, Item, Projectile,
GameObject, GameAnimableObject, SceneCluster, SpawnObjectNode,
GroundItemTile, InteractiveObject, Wall, WallDecoration,
FloorDecoration, GenericTile, ComplexTile, SceneTile.
GameObject.id renamed to objectId to resolve Node.id shadowing
(same pattern as OnDemandNode.id → fileId from Phase 2).