Just to clarify, after finding a helpful discussion (thanks to the insightful response there), I discovered exactly what I was seeking:
class SuperClass{}
let example = new SuperClass();
let prototype = Object.getPrototypeOf(example);
Object.defineProperty(prototype, "metadata", {
enumerable: false,
writable: true // crucial for modifying the metadata
});
prototype.metadata = {x: 10, y: "world"}; // The SuperClass will now have this property accessible in the prototype of all its instances (including any subclasses)
class SubClass extends SuperClass{}
let subInstance = new SubClass();
let retrievedValue = Object.getPrototypeOf(subInstance).metadata; // {x: 10, y: "world"}