changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "available_roles": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "roles": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "description": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "skill_tier": {
+ "type": "number"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "typical_shift_length_hours": {
+ "type": "number"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "slug",
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "total": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ }
+ },
+ "required": [
+ "total",
+ "roles"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "compliance": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "min_wage_usd": {
+ "type": "number"
+ },
+ "note": {
+ "type": "string"
+ },
+ "overtime_daily_hours": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "overtime_weekly_hours": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "state": {
+ "type": "string"
+ },
+ "unique_rules": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "state",
+ "min_wage_usd",
+ "overtime_weekly_hours",
+ "overtime_daily_hours",
+ "unique_rules",
+ "note"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "estimated_total_range": {
+ "additionalProperties": false,
+ "properties": {
+ "basis": {
+ "type": "string"
+ },
+ "currency": {
+ "enum": [
+ "USD",
+ "CAD"
+ ],
+ "type": "string"
+ },
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "low",
+ "high",
+ "currency",
+ "basis"
+ ],
+ "type": "object"
+ },
+ "event": {
+ "additionalProperties": false,
+ "properties": {
+ "attendees": {
+ "anyOf": [
+ {
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "city": {
+ "type": "string"
+ },
+ "description": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "event_date": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "event_type": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "market_tier": {
+ "type": "string"
+ },
+ "state": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "city",
+ "state",
+ "market_tier"
+ ],
+ "type": "object"
+ },
+ "lead_time": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "days_until_event": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "event_date": {
+ "type": "string"
+ },
+ "note": {
+ "type": "string"
+ },
+ "recommendation": {
+ "enum": [
+ "yes",
+ "tight",
+ "rush",
+ "very-rush"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "event_date",
+ "days_until_event",
+ "recommendation",
+ "note"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "message": {
+ "type": "string"
+ },
+ "next_steps": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "overtime_adjusted_total_range": {
+ "anyOf": [
+ {
+ "additionalProperties": false,
+ "properties": {
+ "currency": {
+ "enum": [
+ "USD",
+ "CAD"
+ ],
+ "type": "string"
+ },
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ },
+ "note": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "low",
+ "high",
+ "currency",
+ "note"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Present (non-null) only when daily/weekly OT applies to the schedule."
+ },
+ "plan_lines": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "days": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "estimated_total_range": {
+ "additionalProperties": false,
+ "properties": {
+ "high": {
+ "type": "number"
+ },
+ "low": {
+ "type": "number"
+ }
+ },
+ "required": [
+ "low",
+ "high"
+ ],
+ "type": "object"
+ },
+ "headcount": {
+ "maximum": 9007199254740991,
+ "minimum": -9007199254740991,
+ "type": "integer"
+ },
+ "hourly_range": {
+ "additionalProperties": false,
+ "description": "All-inclusive hourly rate band (worker pay + payroll taxes + workers comp + liability).",
+ "properties": {
+ "high": {
+ "description": "Upper end of the hourly rate range.",
+ "type": "number"
+ },
+ "low": {
+ "description": "Lower end of the hourly rate range.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "low",
+ "high"
+ ],
+ "type": "object"
+ },
+ "hours_per_shift": {
+ "type": "number"
+ },
+ "role": {
+ "type": "string"
+ },
+ "role_slug": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "role",
+ "role_slug",
+ "headcount",
+ "hours_per_shift",
+ "days",
+ "hourly_range",
+ "estimated_total_range"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "requested_city": {
+ "type": "string"
+ },
+ "requested_roles": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "staffing_notes": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "status": {
+ "description": "Discriminator. Branch on this before reading the rest.",
+ "enum": [
+ "plan",
+ "needs_roles",
+ "roles_not_found",
+ "city_not_found"
+ ],
+ "type": "string"
+ },
+ "suggestion": {
+ "additionalProperties": false,
+ "description": "Closest known city/role for a miss; retry with this slug.",
+ "properties": {
+ "kind": {
+ "enum": [
+ "city",
+ "role"
+ ],
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "slug",
+ "name"
+ ],
+ "type": "object"
+ },
+ "tip": {
+ "type": "string"
+ },
+ "unresolved_roles": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "role": {
+ "type": "string"
+ },
+ "suggestion": {
+ "additionalProperties": false,
+ "description": "Closest known city/role for a miss; retry with this slug.",
+ "properties": {
+ "kind": {
+ "enum": [
+ "city",
+ "role"
+ ],
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "slug": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "kind",
+ "slug",
+ "name"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "role"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "status"
+ ],
+ "type": "object"
+}