# Container wash scheduling, sealed-carton picking and row RLE encoding

## Reusable Container Wash Batch Plan

Plan wash batches for reusable containers on one washer using one caller-supplied program. Supply sourceRevision, washProgram, washerStartMinute, cycleMinutes, capacity and up to 128 containers with unique id, releaseMinute and dueMinute. The revision, program and container identities are opaque, case-sensitive ASCII labels of 1 to 48 letters, digits, underscores, periods, colons, pipes or hyphens. All times are safe whole integers in one common minute timeline; starts, releases and deadlines are nonnegative, cycleMinutes is positive and capacity is 1 to 128. The deterministic policy starts at washerStartMinute. At each free-washer boundary it selects every available container with releaseMinute at or before that boundary, ordered by earliest dueMinute then original container order, and fills up to capacity. It starts immediately when any container is available, even if a fuller batch could be formed by waiting. If none is available it advances to the earliest remaining release. There is no lookahead or global scheduling optimum. Each batch occupies the half-open interval from startMinute to endMinute and every member becomes clean-ready exactly at endMinute. The next batch may start at that boundary. A container released exactly at a boundary is available then; finishing exactly at its deadline is on time. A deadline before release is valid and any resulting lateness is reported. Cycles retain policy membership order, containerPlans retains original input order and cycleIndex is zero based. Unused capacity is reported per cycle and in total. totalLateMinutes is an exact decimal-string sum; individual times and lateness remain safe integers. Empty containers returns zero cycles and washerStartMinute as finishMinute. Any cycle end beyond the safe-integer range rejects the entire request during preflight before quoting. The shared 36,000-byte, 6,000-node, depth-24 input profile and 500,000-byte output guard apply. These are technical workload bounds. This supplied-record plan does not operate equipment, reserve containers, validate a wash program, establish sanitation or clean status, authorize handling, or model other operational constraints. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Request example](reusable-container-wash-batch-plan.request.example.json) · [Input schema](reusable-container-wash-batch-plan.input.schema.json) · [Result schema](reusable-container-wash-batch-plan.result.schema.json)

## Sealed Carton Kit Pick Plan

Choose whole sealed cartons to cover a kit demand with the fewest cartons opened. Supply sourceRevision, up to 16 declared skus with unique id and nonnegative requiredPieces, and up to 16 cartons with unique id and 1 to 16 contents entries. Each entry has a declared skuId and positive pieces, and a SKU may appear only once within a carton. Quantities are safe whole integers. The revision, SKU and carton identities are opaque, case-sensitive ASCII labels of 1 to 48 letters, digits, underscores, periods, colons, pipes or hyphens; namespaces are separate and delimiter characters have no composite-key meaning. A carton is selected whole and every declared SKU demand must be covered. The exact objective first minimizes openedCartonCount, then the sum of extra individual pieces across all declared SKUs, then the lexicographically smallest vector of selected carton input indexes. Indexes are zero based and returned in ascending input order. Carton counts take priority over excess: one oversized covering carton beats two exact cartons. Surplus for zero-demand SKUs still counts as extra. There is no package splitting or substitution. skuPlans retains declared SKU order and reports requiredPieces plus exact decimal strings for pickedPieces, extraPieces, shortagePieces and availablePieces. Available pieces sum all supplied carton contents. Shortage is required minus all available pieces, floored at zero. If any demand is infeasible, the result is atomic: no cartons are selected, picked and extra totals are zero and the original requirements and actual stock shortages remain visible. Empty or all-zero demands select no cartons. totalExtraPieces is an exact decimal-string sum. Bounded exact search examines at most 65,536 subsets and uses exact integer arithmetic for all quantity totals. Duplicate identities, duplicate SKU content, unknown references and invalid quantities reject the whole request during preflight. The shared 36,000-byte, 6,000-node, depth-24 input profile and 500,000-byte output guard apply. These are technical workload bounds. This supplied-record optimum does not open cartons, mutate or reserve stock, prove physical availability or condition, authorize picking, or model handling and compatibility constraints. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Request example](sealed-carton-kit-pick-plan.request.example.json) · [Input schema](sealed-carton-kit-pick-plan.input.schema.json) · [Result schema](sealed-carton-kit-pick-plan.result.schema.json)

## TGA Row RLE Encoder

Encode supplied row-major BGR or BGRA hex pixels as TGA RLE/raw packets in lowercase hexadecimal. Width and height are integer 1–128, with at most 1024 pixels and exactly width times height pixels. Each pixel is exactly six hex digits for three bytes or eight for four bytes; uppercase and lowercase ASCII hex are accepted. Within each row, maximal identical runs of 2–128 pixels become run packets. Other pixels form raw packets of 1–128 pixels, stopping before the next identical run of at least two. Every packet ends within its row. Return the complete packet stream, byte length, dimensions, bit depth, pixel and packet counts and typed metadata. BGR/BGRA byte order is preserved. No TGA header, origin interpretation, palette, extensions, color conversion, filesystem access or downloadable file. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Request example](tga-row-rle-encoder.request.example.json) · [Input schema](tga-row-rle-encoder.input.schema.json) · [Result schema](tga-row-rle-encoder.result.schema.json)

## PCX Row RLE Encoder

Encode one caller-prepared PCX row or plane byte sequence as canonical RLE in lowercase hexadecimal. Supply nonempty even-length ASCII hex, uppercase or lowercase, containing 1–4000 bytes. Maximal repeats are split into chunks of at most 63 bytes. A repeated byte, or any byte from C0 through FF, uses a C0-or-count tag followed by that byte; other single bytes remain literal. Return encoded hex, encoded byte length, decoded byte count and packet counts. Caller supplies any required row padding. No PCX header, palette, plane interleaving, whole-image encoding, filesystem access or downloadable file. Use authorized, non-sensitive data. The report describes supplied records and does not change external systems.

[Request example](pcx-row-rle-encoder.request.example.json) · [Input schema](pcx-row-rle-encoder.input.schema.json) · [Result schema](pcx-row-rle-encoder.result.schema.json)

One-time job. See the exact service price before checkout. Save your private JSON result within its 30-day access period.
Requests accept at most 36,000 UTF-8 input bytes. Send only authorized, non-sensitive records.

For a known hosted offer, read current checkout and wallet availability with `GET https://gatewayinformationgroup.com/api/catalog/v1/search?id=PRODUCT_ID`. Then use the input schema and request example above.

Use the existing [agent checkout guide](https://gatewayinformationgroup.com/developers) to prepare a quote, pay and retrieve the private result.
