code: @SuppressWarnings("unused") // called through reflection by RequestServer
    public ModelsV3 fetch(int version, ModelsV3 s) {
      Model model = getFromDKV("key", s.model_id.key());
      s.models = new ModelSchemaV3[1];
      s.models[0] = (ModelSchemaV3)SchemaServer.schema(version, model).fillFromImpl(model);
  
      if (s.find_compatible_frames) {
        // TODO: refactor fetchFrameCols so we don't need this Models object
        Models m = new Models();
        m.models = new Model[1];
        m.models[0] = model;
        m.find_compatible_frames = true;
        Frame[] compatible = Models.findCompatibleFrames(model, Frame.fetchAll(), m.fetchFrameCols());
        s.compatible_frames = new FrameV3[compatible.length]; // TODO: FrameBaseV3
        ((ModelSchemaV3)s.models[0]).compatible_frames = new String[compatible.length];
        int i = 0;
        for (Frame f : compatible) {
          s.compatible_frames[i] = new FrameV3(f);
          ((ModelSchemaV3)s.models[0]).compatible_frames[i] = f._key.toString();
          i++;
        }
      }
  
      return s;
    }
docs: Return a single model.