Solver as a Service
Sign Up Now →Sign Up Now

Manifest format

A manifest declares a problem type: its objectives, inputs, constraints, checks and presets. The solver validates every manifest against this schema before it admits it.

Preview

Top-level keys#

KeyTypeRequiredDescription
domainstringYesProblem domain identifier (e.g., FieldService, VehicleRouting, Rostering)
versionstringYesManifest version (semantic versioning recommended)
descriptionstringNoHuman-readable description of the problem domain
objectivesobjectNoOptimization objectives for the problem
problem_inputsobjectNoTuning parameters for this problem - time limits, weights, horizons - and the UI form generated from them. These are NOT preconditions: a default here is a real answer, so the surface is permissive by design. The precondition contract is data_schema.
input_categoriesarray of NoCategories for organizing problem inputs in the UI
categoriesarray of NoCategories for organizing constraints in the UI
constraintsobjectNoConstraint definitions for the problem
validation_rulesarray of NoCross-constraint validation rules
feasibility_checksarray of NoPre-solve sanity gates that determine whether data is inside the solver's feasible input envelope
presetsobjectNoPre-configured constraint combinations for quick setup
defaultsobjectNoDefault values for problem parameters
uiNo
fractalobjectNoHierarchical/fractal structure for multi-scale optimization
defaultContractobjectNoDefault contract configuration (for rostering)
inrc2objectNoINRC-II competition specific configuration
data_schemaNo
spatial_latticeNo

See the problem types for manifests in use, and the tutorial for writing one step by step.