{"$defs":{"CargoSchedule":{"additionalProperties":false,"properties":{"schema_version":{"const":"2.0","default":"2.0","title":"Schema Version","type":"string"},"periods":{"items":{"$ref":"#/$defs/DemandPeriod"},"maxItems":100,"minItems":1,"title":"Periods","type":"array"},"initial_inventory_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Initial Inventory Mt"},"minimum_inventory_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Minimum Inventory Mt"},"maximum_inventory_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Maximum Inventory Mt"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["periods","evidence"],"title":"CargoSchedule","type":"object"},"CommercialCostScope":{"additionalProperties":false,"properties":{"cost_scope_id":{"minLength":1,"title":"Cost Scope Id","type":"string"},"perspective":{"$ref":"#/$defs/CommercialPerspective"},"allocations":{"items":{"$ref":"#/$defs/CostAllocation"},"title":"Allocations","type":"array"}},"required":["cost_scope_id","perspective","allocations"],"title":"CommercialCostScope","type":"object"},"CommercialPerspective":{"enum":["CHARTERER","OWNER_OPERATOR","WHOLE_SYSTEM_ANALYTICAL"],"title":"CommercialPerspective","type":"string"},"CommercialRateBasis":{"additionalProperties":false,"properties":{"contract_type":{"$ref":"#/$defs/ContractStructure"},"rate_basis_id":{"minLength":1,"title":"Rate Basis Id","type":"string"},"rate_status":{"enum":["CONCLUDED_FIXTURE","INDICATIVE_QUOTE"],"title":"Rate Status","type":"string"},"gross_or_net":{"enum":["GROSS","NET","UNKNOWN"],"title":"Gross Or Net","type":"string"},"commission_status":{"enum":["INCLUDED","EXCLUDED","UNKNOWN"],"title":"Commission Status","type":"string"},"cost_scope":{"$ref":"#/$defs/CommercialCostScope"}},"required":["contract_type","rate_basis_id","rate_status","gross_or_net","commission_status","cost_scope"],"title":"CommercialRateBasis","type":"object"},"Commitment":{"additionalProperties":false,"properties":{"start":{"format":"date","title":"Start","type":"string"},"end":{"format":"date","title":"End","type":"string"},"location_after":{"title":"Location After","type":"string"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["start","end","location_after","evidence"],"title":"Commitment","type":"object"},"CommodityType":{"description":"Bulk commodity types relevant to Indian steel production.\n\nCOKING_COAL    — metallurgical coking coal (primary blast furnace input).\nPCI_COAL       — pulverised coal injection coal (blast furnace supplement).\nTHERMAL_COAL   — steam coal (power generation, not steel-specific).\nIRON_ORE_FINES — iron ore fines (sintering input).\nIRON_ORE_PELLETS — iron ore pellets (direct reduction input).\nLIMESTONE      — flux / sintering agent.\nDOLOMITE       — flux / sintering agent.","enum":["COKING_COAL","PCI_COAL","THERMAL_COAL","IRON_ORE_FINES","IRON_ORE_PELLETS","LIMESTONE","DOLOMITE"],"title":"CommodityType","type":"string"},"ContractOffer":{"additionalProperties":false,"properties":{"offer_id":{"title":"Offer Id","type":"string"},"structure":{"enum":["SHORT_TERM_COA","MEDIUM_TERM_COA"],"title":"Structure","type":"string"},"origin_location_id":{"title":"Origin Location Id","type":"string"},"destination_location_id":{"title":"Destination Location Id","type":"string"},"vessel_classes":{"items":{"$ref":"#/$defs/PlanningVesselClass"},"minItems":1,"title":"Vessel Classes","type":"array"},"horizon_start":{"format":"date","title":"Horizon Start","type":"string"},"horizon_end":{"format":"date","title":"Horizon End","type":"string"},"minimum_quantity_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Minimum Quantity Mt"},"maximum_quantity_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Maximum Quantity Mt"},"minimum_voyages":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Minimum Voyages"},"maximum_voyages":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Maximum Voyages"},"minimum_parcel_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Minimum Parcel Mt"},"maximum_parcel_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Maximum Parcel Mt"},"nomination_notice_days":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"title":"Nomination Notice Days"},"nomination_rule":{"anyOf":[{"const":"SUPPLIED_LOADING_SLOTS","type":"string"},{"type":"null"}],"default":null,"title":"Nomination Rule"},"price_fixed_fraction":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Price Fixed Fraction"},"fixed_rate_usd_per_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Fixed Rate Usd Per Mt"},"floating_multiplier":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Floating Multiplier"},"floating_spread_usd_per_mt":{"anyOf":[{"type":"number"},{"type":"null"}],"default":null,"title":"Floating Spread Usd Per Mt"},"capacity_assured_fraction":{"anyOf":[{"maximum":1,"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Capacity Assured Fraction"},"cancellation_usd_per_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Cancellation Usd Per Mt"},"shortfall_usd_per_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Shortfall Usd Per Mt"},"flexibility":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Flexibility"},"commercial_basis":{"$ref":"#/$defs/CommercialRateBasis"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["offer_id","structure","origin_location_id","destination_location_id","vessel_classes","horizon_start","horizon_end","commercial_basis","evidence"],"title":"ContractOffer","type":"object"},"ContractStructure":{"description":"Vessel charter / freight contract structure types.\n\nSPOT       — single-voyage spot market charter.\nCOA        — Contract of Affreightment (volume-based, multi-voyage).\nTIME_CHARTER — time charter party (vessel hired for a time period).\nBAREBOAT   — bareboat charter (operator provides crew and management).","enum":["SPOT","COA","TIME_CHARTER","BAREBOAT"],"title":"ContractStructure","type":"string"},"CostAllocation":{"additionalProperties":false,"properties":{"component":{"$ref":"#/$defs/CostComponent"},"treatment":{"$ref":"#/$defs/CostTreatment"},"evidence_reference":{"anyOf":[{"minLength":1,"type":"string"},{"type":"null"}],"title":"Evidence Reference"}},"required":["component","treatment","evidence_reference"],"title":"CostAllocation","type":"object"},"CostComponent":{"enum":["QUOTED_FREIGHT","BUNKER","HIRE","PORT","BALLAST","WAITING","CARGO_HANDLING","INSURANCE","PENALTIES"],"title":"CostComponent","type":"string"},"CostInput":{"additionalProperties":false,"properties":{"vessel_id":{"title":"Vessel Id","type":"string"},"origin_location_id":{"title":"Origin Location Id","type":"string"},"destination_location_id":{"title":"Destination Location Id","type":"string"},"component":{"$ref":"#/$defs/CostComponent"},"amount_usd":{"minimum":0,"title":"Amount Usd","type":"number"},"basis":{"enum":["PER_VOYAGE","PER_MT","PER_DAY"],"title":"Basis","type":"string"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["vessel_id","origin_location_id","destination_location_id","component","amount_usd","basis","evidence"],"title":"CostInput","type":"object"},"CostTreatment":{"enum":["SEPARATE","INCLUDED_IN_FREIGHT","EXCLUDED","UNKNOWN"],"title":"CostTreatment","type":"string"},"DeliveryRequirement":{"additionalProperties":false,"properties":{"delivery_by":{"format":"date","title":"Delivery By","type":"string"},"quantity_mt":{"exclusiveMinimum":0,"title":"Quantity Mt","type":"number"}},"required":["delivery_by","quantity_mt"],"title":"DeliveryRequirement","type":"object"},"DemandPeriod":{"additionalProperties":false,"properties":{"due_date":{"format":"date","title":"Due Date","type":"string"},"quantity_mt":{"exclusiveMinimum":0,"title":"Quantity Mt","type":"number"}},"required":["due_date","quantity_mt"],"title":"DemandPeriod","type":"object"},"ExecutionMode":{"enum":["REFERENCE_DEMO","RESEARCH_ANALYSIS","OPERATIONAL_DECISION_SUPPORT"],"title":"ExecutionMode","type":"string"},"InventoryRequirements":{"additionalProperties":false,"properties":{"current_stock_mt":{"minimum":0,"title":"Current Stock Mt","type":"number"},"minimum_stock_mt":{"minimum":0,"title":"Minimum Stock Mt","type":"number"},"daily_consumption_mt":{"minimum":0,"title":"Daily Consumption Mt","type":"number"},"measured_at":{"format":"date-time","title":"Measured At","type":"string"}},"required":["current_stock_mt","minimum_stock_mt","daily_consumption_mt","measured_at"],"title":"InventoryRequirements","type":"object"},"JointScenarioConfig":{"additionalProperties":false,"properties":{"version":{"const":"external-joint-2.0","default":"external-joint-2.0","title":"Version","type":"string"},"seed":{"maximum":4294967295,"minimum":0,"title":"Seed","type":"integer"},"count":{"default":5000,"maximum":20000,"minimum":20,"title":"Count","type":"integer"},"variables":{"default":[],"items":{"$ref":"#/$defs/ScenarioVariable"},"maxItems":40,"title":"Variables","type":"array"},"deterministic_assumption":{"anyOf":[{"$ref":"#/$defs/PlanningEvidence"},{"type":"null"}],"default":null},"dependence_calibration":{"default":"ASSUMPTION","enum":["ASSUMPTION","CALIBRATED"],"title":"Dependence Calibration","type":"string"},"dependence_evidence":{"anyOf":[{"$ref":"#/$defs/PlanningEvidence"},{"type":"null"}],"default":null}},"required":["seed"],"title":"JointScenarioConfig","type":"object"},"OperatorEvidence":{"additionalProperties":false,"properties":{"field_name":{"minLength":1,"title":"Field Name","type":"string"},"source_reference":{"minLength":1,"title":"Source Reference","type":"string"},"available_at":{"format":"date-time","title":"Available At","type":"string"},"provenance_quality":{"$ref":"#/$defs/ProvenanceQuality"},"is_assumption":{"title":"Is Assumption","type":"boolean"}},"required":["field_name","source_reference","available_at","provenance_quality","is_assumption"],"title":"OperatorEvidence","type":"object"},"PlanningEvidence":{"additionalProperties":false,"properties":{"reference":{"minLength":1,"title":"Reference","type":"string"},"available_at":{"format":"date-time","title":"Available At","type":"string"},"valid_until":{"format":"date-time","title":"Valid Until","type":"string"},"quality":{"enum":["AUTHORITATIVE","ENTERPRISE","LICENSED","SYNTHETIC","UNKNOWN"],"title":"Quality","type":"string"},"operational_use":{"title":"Operational Use","type":"boolean"},"assumption":{"title":"Assumption","type":"boolean"}},"required":["reference","available_at","valid_until","quality","operational_use","assumption"],"title":"PlanningEvidence","type":"object"},"PlanningPolicy":{"additionalProperties":false,"properties":{"version":{"const":"external-risk-2.0","default":"external-risk-2.0","title":"Version","type":"string"},"economic_tail_weight":{"minimum":0,"title":"Economic Tail Weight","type":"number"},"monetized_tail_weight":{"minimum":0,"title":"Monetized Tail Weight","type":"number"},"shortage_usd_per_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Shortage Usd Per Mt"},"late_usd_per_mt_day":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Late Usd Per Mt Day"},"allow_unresolved_research":{"default":false,"title":"Allow Unresolved Research","type":"boolean"},"unresolved_penalty_usd":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Unresolved Penalty Usd"},"maximum_shortfall_probability":{"default":1,"maximum":1,"minimum":0,"title":"Maximum Shortfall Probability","type":"number"},"maximum_storage_violation_probability":{"default":0,"maximum":1,"minimum":0,"title":"Maximum Storage Violation Probability","type":"number"},"maximum_late_probability":{"default":1,"maximum":1,"minimum":0,"title":"Maximum Late Probability","type":"number"},"maximum_states":{"default":10000,"maximum":100000,"minimum":1,"title":"Maximum States","type":"integer"},"maximum_evaluations":{"default":10000,"maximum":100000,"minimum":1,"title":"Maximum Evaluations","type":"integer"},"timeout_seconds":{"default":30,"exclusiveMinimum":0,"maximum":120,"title":"Timeout Seconds","type":"number"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["economic_tail_weight","monetized_tail_weight","evidence"],"title":"PlanningPolicy","type":"object"},"PlanningVesselClass":{"enum":["HANDYSIZE","SUPRAMAX","PANAMAX","CAPESIZE"],"title":"PlanningVesselClass","type":"string"},"ProcurementRequest":{"additionalProperties":false,"properties":{"schema_version":{"const":"1.0","title":"Schema Version","type":"string"},"request_id":{"minLength":1,"title":"Request Id","type":"string"},"mode":{"$ref":"#/$defs/ExecutionMode"},"as_of":{"format":"date-time","title":"As Of","type":"string"},"commodity":{"$ref":"#/$defs/CommodityType"},"total_cargo_quantity_mt":{"exclusiveMinimum":0,"title":"Total Cargo Quantity Mt","type":"number"},"quantity_basis":{"enum":["WET_METRIC_TONNE","DRY_METRIC_TONNE"],"title":"Quantity Basis","type":"string"},"origin_location_id":{"minLength":1,"title":"Origin Location Id","type":"string"},"destination_location_id":{"minLength":1,"title":"Destination Location Id","type":"string"},"route_definition_version":{"minLength":1,"title":"Route Definition Version","type":"string"},"shipment_window_start":{"format":"date","title":"Shipment Window Start","type":"string"},"shipment_window_end":{"format":"date","title":"Shipment Window End","type":"string"},"contract_horizon_start":{"format":"date","title":"Contract Horizon Start","type":"string"},"contract_horizon_end":{"format":"date","title":"Contract Horizon End","type":"string"},"permitted_vessel_classes":{"items":{"$ref":"#/$defs/PlanningVesselClass"},"minItems":1,"title":"Permitted Vessel Classes","type":"array"},"preferred_vessel_classes":{"items":{"$ref":"#/$defs/PlanningVesselClass"},"title":"Preferred Vessel Classes","type":"array"},"risk_preference":{"$ref":"#/$defs/RiskProfile"},"commercial_basis":{"$ref":"#/$defs/CommercialRateBasis"},"number_of_voyages":{"anyOf":[{"$ref":"#/$defs/VoyageCountConstraint"},{"type":"null"}],"default":null},"minimum_parcel_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Minimum Parcel Mt"},"maximum_parcel_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Maximum Parcel Mt"},"inventory_requirements":{"anyOf":[{"$ref":"#/$defs/InventoryRequirements"},{"type":"null"}],"default":null},"delivery_requirements":{"anyOf":[{"items":{"$ref":"#/$defs/DeliveryRequirement"},"type":"array"},{"type":"null"}],"default":null,"title":"Delivery Requirements"},"operator_evidence":{"items":{"$ref":"#/$defs/OperatorEvidence"},"title":"Operator Evidence","type":"array"}},"required":["schema_version","request_id","mode","as_of","commodity","total_cargo_quantity_mt","quantity_basis","origin_location_id","destination_location_id","route_definition_version","shipment_window_start","shipment_window_end","contract_horizon_start","contract_horizon_end","permitted_vessel_classes","preferred_vessel_classes","risk_preference","commercial_basis","operator_evidence"],"title":"ProcurementRequest","type":"object"},"Provenance":{"description":"Data provenance record.\n\nEvery data point that informs a decision must carry provenance.\nWhen provenance is unknown, use quality_class=UNKNOWN and leave\nsource fields as None — do NOT fabricate a source.\n\nSynthetic data MUST set is_synthetic=True.\nSynthetic data with quality_class != SYNTHETIC is a validation error.","properties":{"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Human-readable name of the data source.","examples":["Visakhapatnam Port Authority","Baltic Exchange"],"title":"Source Name"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"URL of the original source document or dataset.","title":"Source Url"},"publisher":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Organization that published the data.","examples":["Ministry of Steel, Government of India"],"title":"Publisher"},"retrieved_at":{"anyOf":[{"format":"date-time","type":"string"},{"type":"null"}],"default":null,"description":"UTC datetime when this data was retrieved or ingested.","title":"Retrieved At"},"effective_date":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"default":null,"description":"The date the data is valid as of (may differ from retrieval date).","title":"Effective Date"},"license_class":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"License governing use of this data (e.g., 'CC-BY-4.0', 'Proprietary').","title":"License Class"},"quality_class":{"$ref":"#/$defs/ProvenanceQuality","default":"UNKNOWN","description":"Quality / trust tier of this data source."},"is_synthetic":{"default":false,"description":"True if this data was generated, simulated, or synthesised rather than observed from the real world. Synthetic data must never drive live chartering decisions.","title":"Is Synthetic","type":"boolean"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Free-text notes about this data source, caveats, or limitations.","title":"Notes"}},"title":"Provenance","type":"object"},"ProvenanceQuality":{"description":"Data provenance quality hierarchy.\n\nAUTHORITATIVE     — official government or statutory authority source\n                    (Ministry of Steel, Port Authority, VCTPL, etc.).\nPUBLIC_THIRD_PARTY — reputable public source (Baltic Exchange, UNCTAD,\n                     World Bank, S&P Global Platts in public form).\nLICENSED          — commercially licensed data (Clarksons, Drewry,\n                     VesselsValue, etc.).\nENTERPRISE        — internal operational data from a partner enterprise.\nSYNTHETIC         — generated / simulated data.\n                    MUST always be explicitly labelled.\n                    MUST NOT drive live chartering decisions.\nUNKNOWN           — provenance not established.\n                    MUST NOT drive decisions.\n\nOrder from highest to lowest trust:\nAUTHORITATIVE > PUBLIC_THIRD_PARTY > LICENSED > ENTERPRISE > SYNTHETIC > UNKNOWN","enum":["AUTHORITATIVE","PUBLIC_THIRD_PARTY","LICENSED","ENTERPRISE","SYNTHETIC","UNKNOWN"],"title":"ProvenanceQuality","type":"string"},"ReferenceRate":{"additionalProperties":false,"description":"Explicitly synthetic input; never accepted in operational mode.","properties":{"vessel_class":{"$ref":"#/$defs/PlanningVesselClass"},"origin_location_id":{"title":"Origin Location Id","type":"string"},"destination_location_id":{"title":"Destination Location Id","type":"string"},"fixing_date":{"format":"date","title":"Fixing Date","type":"string"},"usd_per_mt":{"exclusiveMinimum":0,"title":"Usd Per Mt","type":"number"},"commercial_basis":{"$ref":"#/$defs/CommercialRateBasis"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["vessel_class","origin_location_id","destination_location_id","fixing_date","usd_per_mt","commercial_basis","evidence"],"title":"ReferenceRate","type":"object"},"RiskProfile":{"description":"Procurement risk preference stated by the operator.\n\nCOST_FOCUSED    — minimise expected freight cost; accept supply risk.\nBALANCED        — balance cost and supply security.\nSUPPLY_SECURITY — ensure supply continuity; accept higher expected cost.","enum":["COST_FOCUSED","BALANCED","SUPPLY_SECURITY"],"title":"RiskProfile","type":"string"},"RouteChoice":{"additionalProperties":false,"properties":{"origin_location_id":{"title":"Origin Location Id","type":"string"},"destination_location_id":{"title":"Destination Location Id","type":"string"},"origin_berth_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Origin Berth Id"},"destination_berth_id":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Destination Berth Id"},"route_definition_version":{"title":"Route Definition Version","type":"string"}},"required":["origin_location_id","destination_location_id","route_definition_version"],"title":"RouteChoice","type":"object"},"ScenarioVariable":{"additionalProperties":false,"properties":{"variable_id":{"title":"Variable Id","type":"string"},"dimension":{"enum":["FREIGHT_MULTIPLIER","BUNKER_MULTIPLIER","WAITING_DAYS","PRODUCTIVITY_MULTIPLIER","AVAILABILITY_FRACTION","DELAY_DAYS","DEMAND_MULTIPLIER","DISRUPTION_DAYS"],"title":"Dimension","type":"string"},"route_key":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Route Key"},"date_from":{"format":"date","title":"Date From","type":"string"},"date_to":{"format":"date","title":"Date To","type":"string"},"values":{"items":{"type":"number"},"maxItems":100,"minItems":1,"title":"Values","type":"array"},"probabilities":{"items":{"type":"number"},"maxItems":100,"minItems":1,"title":"Probabilities","type":"array"},"dependence_group":{"title":"Dependence Group","type":"string"},"calibration":{"enum":["ASSUMPTION","STRESS","CALIBRATED"],"title":"Calibration","type":"string"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["variable_id","dimension","date_from","date_to","values","probabilities","dependence_group","calibration","evidence"],"title":"ScenarioVariable","type":"object"},"Vessel":{"description":"A bulk carrier vessel.\n\nIMO number is the authoritative identifier.\nPhysical characteristics come from ship registries — must be provenance-backed.","properties":{"id":{"format":"uuid","title":"Id","type":"string"},"imo_number":{"anyOf":[{"pattern":"^\\d{7}$","type":"string"},{"type":"null"}],"default":null,"description":"IMO ship identification number (7 digits). None if unknown.","title":"Imo Number"},"name":{"description":"Vessel name.","minLength":1,"title":"Name","type":"string"},"size_class":{"$ref":"#/$defs/VesselSizeClass","description":"Standardised bulk carrier size class."},"deadweight_tonnes":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Deadweight tonnage (DWT) in metric tonnes. None = unknown.","title":"Deadweight Tonnes"},"loa_metres":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Length overall (LOA) in metres. None = unknown.","title":"Loa Metres"},"beam_metres":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Beam (breadth) in metres. None = unknown.","title":"Beam Metres"},"draft_laden_metres":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Laden draft in metres. None = unknown.","title":"Draft Laden Metres"},"speed_laden_knots":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Service speed laden (knots). None = unknown.","title":"Speed Laden Knots"},"fuel_consumption_mt_per_day":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"description":"Main engine fuel consumption at sea (MT/day). None = unknown.","title":"Fuel Consumption Mt Per Day"},"flag_iso2":{"anyOf":[{"pattern":"^[A-Z]{2}$","type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 flag state code.","title":"Flag Iso2"},"provenance":{"$ref":"#/$defs/Provenance","default":{"source_name":null,"source_url":null,"publisher":null,"retrieved_at":null,"effective_date":null,"license_class":null,"quality_class":"UNKNOWN","is_synthetic":false,"notes":"Provenance not yet established."}},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Notes"}},"required":["name","size_class"],"title":"Vessel","type":"object"},"VesselInput":{"additionalProperties":false,"properties":{"vessel_id":{"minLength":1,"title":"Vessel Id","type":"string"},"vessel_class":{"$ref":"#/$defs/PlanningVesselClass"},"kind":{"enum":["ACTUAL","PLANNING_PROFILE"],"title":"Kind","type":"string"},"particulars":{"anyOf":[{"$ref":"#/$defs/Vessel"},{"type":"null"}],"default":null},"usable_capacity_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Usable Capacity Mt"},"noncargo_dwt_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Noncargo Dwt Mt"},"cubic_capacity_m3":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Cubic Capacity M3"},"stowage_factor_m3_per_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Stowage Factor M3 Per Mt"},"draft_limited_cargo_mt":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Draft Limited Cargo Mt"},"loading_days":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Loading Days"},"discharge_days":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Discharge Days"},"return_cycle_days":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Return Cycle Days"},"return_ballast_cost_usd":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Return Ballast Cost Usd"},"waiting_days":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Waiting Days"},"idle_usd_per_day":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Idle Usd Per Day"},"position":{"anyOf":[{"$ref":"#/$defs/VesselPosition"},{"type":"null"}],"default":null},"alternative_positions":{"default":[],"items":{"$ref":"#/$defs/VesselPosition"},"maxItems":4,"title":"Alternative Positions","type":"array"},"commitments":{"default":[],"items":{"$ref":"#/$defs/Commitment"},"maxItems":50,"title":"Commitments","type":"array"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["vessel_id","vessel_class","kind","evidence"],"title":"VesselInput","type":"object"},"VesselPosition":{"additionalProperties":false,"properties":{"location_id":{"title":"Location Id","type":"string"},"observed_at":{"format":"date-time","title":"Observed At","type":"string"},"commercially_available_from":{"anyOf":[{"format":"date","type":"string"},{"type":"null"}],"title":"Commercially Available From"},"ballast_speed_knots":{"anyOf":[{"exclusiveMinimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Ballast Speed Knots"},"ballast_fuel_mt_per_day":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Ballast Fuel Mt Per Day"},"bunker_usd_per_mt":{"anyOf":[{"minimum":0,"type":"number"},{"type":"null"}],"default":null,"title":"Bunker Usd Per Mt"},"evidence":{"$ref":"#/$defs/PlanningEvidence"}},"required":["location_id","observed_at","commercially_available_from","evidence"],"title":"VesselPosition","type":"object"},"VesselSizeClass":{"description":"Standard bulk carrier size classes used in freight markets.\n\nThese labels are market conventions rather than legal definitions.\nTideForge does not infer a vessel's class from unproven dimensions.","enum":["HANDYSIZE","HANDYMAX","SUPRAMAX","ULTRAMAX","PANAMAX","KAMSARMAX","CAPESIZE","NEWCASTLEMAX","VLOC"],"title":"VesselSizeClass","type":"string"},"VoyageCountConstraint":{"additionalProperties":false,"properties":{"minimum":{"exclusiveMinimum":0,"title":"Minimum","type":"integer"},"maximum":{"exclusiveMinimum":0,"title":"Maximum","type":"integer"}},"required":["minimum","maximum"],"title":"VoyageCountConstraint","type":"object"}},"additionalProperties":false,"properties":{"schema_version":{"const":"2.0","default":"2.0","title":"Schema Version","type":"string"},"procurement":{"$ref":"#/$defs/ProcurementRequest"},"vessels":{"default":[],"items":{"$ref":"#/$defs/VesselInput"},"maxItems":20,"title":"Vessels","type":"array"},"alternative_routes":{"default":[],"items":{"$ref":"#/$defs/RouteChoice"},"maxItems":20,"title":"Alternative Routes","type":"array"},"loading_dates":{"default":[],"items":{"format":"date","type":"string"},"maxItems":30,"title":"Loading Dates","type":"array"},"review_dates":{"default":[],"items":{"format":"date","type":"string"},"maxItems":10,"title":"Review Dates","type":"array"},"quantity_step_mt":{"exclusiveMinimum":0,"title":"Quantity Step Mt","type":"number"},"maximum_voyages":{"default":6,"maximum":12,"minimum":1,"title":"Maximum Voyages","type":"integer"},"spot_fixation_fractions":{"default":[0,0.5,1],"items":{"type":"number"},"maxItems":11,"title":"Spot Fixation Fractions","type":"array"},"offers":{"default":[],"items":{"$ref":"#/$defs/ContractOffer"},"maxItems":10,"title":"Offers","type":"array"},"costs":{"default":[],"items":{"$ref":"#/$defs/CostInput"},"maxItems":200,"title":"Costs","type":"array"},"reference_rates":{"default":[],"items":{"$ref":"#/$defs/ReferenceRate"},"maxItems":200,"title":"Reference Rates","type":"array"},"cargo_schedule":{"anyOf":[{"$ref":"#/$defs/CargoSchedule"},{"type":"null"}],"default":null},"scenarios":{"anyOf":[{"$ref":"#/$defs/JointScenarioConfig"},{"type":"null"}],"default":null},"policy":{"$ref":"#/$defs/PlanningPolicy"}},"required":["procurement","quantity_step_mt","policy"],"title":"ProcurementPlanRequest","type":"object"}