operations: create: description: "Create new page" input: required: [slug, title, level, layout] optional: [description, is_active] output: PageView acl_required: ["page:create"] validation: - slug_unique: "Page slug must be unique" - slug_format: "Slug must be URL-safe" - level_valid: "Level must be 1-5" errors: - CONFLICT: "Page with this slug already exists" - VALIDATION_ERROR: "Invalid input" read: description: "Get page by ID or slug" input: optional: [id, slug] output: PageView acl_required: [] public: true errors: - NOT_FOUND: "Page not found" - VALIDATION_ERROR: "Must provide id or slug" update: description: "Update page" input: required: [id] optional: [slug, title, description, level, layout, is_active] output: PageView acl_required: ["page:update"] errors: - NOT_FOUND: "Page not found" - CONFLICT: "Slug already in use" delete: description: "Delete page" input: required: [id] output: boolean acl_required: ["page:delete"] cascade: true errors: - NOT_FOUND: "Page not found" list: description: "List pages with filtering" input: optional: [level, is_active, page, limit, sort] output: PageView[] acl_required: [] public: true pagination: true errors: [] get_by_level: description: "Get all pages for a specific level" input: required: [level] output: PageView[] acl_required: [] public: true errors: []