|string> */ public function rules(): array { return [ 'step_number' => 'required|integer', 'title' => 'required|string|max:255', 'description' => 'nullable|string', 'hint_text' => 'required|string', 'hint_media_url' => 'nullable|string', 'latitude' => 'required|numeric', 'longitude' => 'required|numeric', 'radius_m' => 'integer|min:1', 'xp' => 'integer|min:0', ]; } /** * Handle a failed validation attempt. * * @param \Illuminate\Contracts\Validation\Validator $validator * @return void * * @throws \Illuminate\Http\Exceptions\HttpResponseException */ protected function failedValidation(Validator $validator) { throw new HttpResponseException(response()->json([ 'message' => 'Validation errors', 'errors' => $validator->errors() ], 422)); } }