entity: SohlEntitySurface = ...

The getter-backed entity-class access surface, exposed inside SoHL as the entity import and outside as the runtime global sohl.entity.

Each class name is a getter returning the currently-registered class, so an override applied via SohlEntitySurface.register is picked up automatically at every access and every construction site. The register/base members are non-enumerable, so Object.keys(sohl.entity) lists only class names. The surface itself is frozen.

const vm = new entity.ValueModifier(parent);
class MyResult extends entity.SuccessTestResult {}
sohl.entity.register("SuccessTestResult", MyResult);