1. A non-transitory computer readable medium comprising instructions which, when executed by one or more hardware processors, cause performance of operations comprising: identifying, by a runtime environment of a module system, a first serializable runtime object comprising a first reference to a second serializable runtime object; determining that the first serializable runtime object is a first instantiation of a first element in a first package of the module system, wherein the first package is open to one or more reflective operations; determining that (a) the second serializable runtime object is a second instantiation of a second element in a second package of the module system and (b) the second element is not open to the one or more reflective operations, wherein determining that the second element is not open to the one or more reflective operations is based, at least in part, on inter-module accessibility specified by the module system; and responsive to determining (a) and (b), and based at least in part on the first reference of the first serializable object to the second serializable runtime object, executing a remedial operation associated with the first serializable runtime object, wherein executing the remedial operation comprises one or more of (a) wherein the second serializable object has a concrete type different from a declared type of the first reference in the first serializable object: emitting a serial form of the second serializable object of the declared type, for inclusion in a serial form of the first serializable object to satisfy the first reference, (ii) wherein a closest ancestor type, of the concrete type of the second serializable object, is open to the one or more reflective operations: emitting a serial form of the second serializable object of the closest ancestor type that is open to the one or more reflective operations, for inclusion in the serial form of the first serializable object to satisfy the first reference, (iii) refraining from emitting any serial form of the first reference to the second serializable runtime object, (iv) emitting a serial form of the first reference in which the second serializable object is replaced with a null value, (v) opening the second package to the one or more reflective operations, (vi) emitting, in a first serial form of the first serializable runtime object, a minimal serial form of the second serializable runtime object, (vii) raising a runtime exception, or (viii) raising a warning.