package reportget // Stable error codes returned in `Result.ErrorCode`. The values match the // vocabulary frozen by `gamemaster/README.md §Error Model` and // `gamemaster/api/internal-openapi.yaml`. Stage 19's REST handler imports // these names rather than redeclare them; renaming any of them is a // contract change. // // Note: the report-get operation does **not** require the runtime to be // in `running` state. Reports may be served against any runtime that // exists in `runtime_records`; an unreachable engine surfaces naturally // through `engine_unreachable`. Therefore `runtime_not_running` is not // part of this vocabulary. const ( // ErrorCodeInvalidRequest reports that the request envelope failed // structural validation (empty required field, negative turn). ErrorCodeInvalidRequest = "invalid_request" // ErrorCodeRuntimeNotFound reports that no `runtime_records` row // exists for the requested game id. ErrorCodeRuntimeNotFound = "runtime_not_found" // ErrorCodeForbidden reports that the caller is not an active member // of the game, or that the (game_id, user_id) pair lacks a player // mapping. ErrorCodeForbidden = "forbidden" // ErrorCodeEngineUnreachable reports that the engine /api/v1/report // call returned a 5xx status, timed out, or could not be dispatched. ErrorCodeEngineUnreachable = "engine_unreachable" // ErrorCodeEngineValidationError reports that the engine returned // 4xx. The body is forwarded verbatim through `Result.RawResponse`. ErrorCodeEngineValidationError = "engine_validation_error" // ErrorCodeEngineProtocolViolation reports that the engine response // did not match the expected schema (empty body, malformed JSON). // Stage 19 maps this to 502. ErrorCodeEngineProtocolViolation = "engine_protocol_violation" // ErrorCodeServiceUnavailable reports that a steady-state dependency // (PostgreSQL, Lobby) was unreachable for this call. ErrorCodeServiceUnavailable = "service_unavailable" // ErrorCodeInternal reports an unexpected error not classified by // the other codes. ErrorCodeInternal = "internal_error" )