key,'Content-Type: application/json'],$headers);$c=curl_init($this->base.$path);curl_setopt_array($c,[CURLOPT_RETURNTRANSFER=>true,CURLOPT_CUSTOMREQUEST=>$method,CURLOPT_HTTPHEADER=>$h,CURLOPT_POSTFIELDS=>$body?json_encode($body):null]);$raw=curl_exec($c);$status=curl_getinfo($c,CURLINFO_RESPONSE_CODE);curl_close($c);$data=json_decode($raw,true);if($status>=400)throw new RuntimeException($data['error']['message']??'Leasvio API error');return$data;}public function list(string $resource,array $query=[]):array{return$this->request('/'.$resource.'?'.http_build_query($query));}}