Package dev.despical.mazeengine.api.request


package dev.despical.mazeengine.api.request
Immutable request values for submitting maze creation with preset overrides.

CreateMazeRequest specifies the maze identifier, world origin, logical grid size, and selected preset. Its builder provides optional overrides for generation and placement settings. Nullable constructor overrides inherit the current preset when absent, except that an absent seed is generated at submission. Explicit false and zero values remain supplied overrides rather than absence markers.

Construction validates local request values only. Submit a built request through MazeOperations.create(CommandSender, CreateMazeRequest) on the server thread while MazeEngine is enabled. The service resolves the current preset and checks the actor's permissions, world availability, configured limits, and conflicting reservations before accepting an operation.

A successfully constructed request does not reserve a maze name or guarantee that world work will succeed. Submission rejection throws directly; failures after acceptance are reported by the returned operation handle and lifecycle events. Retaining an immutable request does not make its preset reference a frozen copy of the configured preset.