> */ public function rules(): array { return [ 'book' => ['integer', 'min:1', 'required_with:chapter,para,to'], // 章节起始段落号;服务端按 pali_texts 的 chapter_len 展开成段落区间 'chapter' => ['integer', 'min:1', 'prohibits:para,to'], 'para' => ['integer', 'min:1'], 'to' => ['integer', 'min:1'], // 游标,形如 "9002-15"(book-para)。由 meta.next_cursor 给出, // 客户端原样回传即可,不要自己拼 'after' => ['string', 'regex:/^\d+-\d+$/'], 'page_size' => ['integer', 'min:1'], 'unit' => ['string', 'in:para,byte'], 'format' => ['string', 'in:html,markdown,react,text'], 'include' => ['string', 'in:display,sentences,all'], ]; } }