This is actually not true. The default serialization will serialize read only properties and fail on deserialization. As the method is implemented on the objects as blueprintModuleId there need to be a searializable false to prevent any interference with user code.