{
  "openapi": "3.1.0",
  "info": {
    "title": "Latent Mile",
    "version": "1",
    "description": "Describe a ready film batch, scan needs and local handoff constraints. Latent Mile prepares a proposed requirement and records a request, then progresses availability, scope, timing and price by email. A request is not an order or confirmed drop-off."
  },
  "servers": [
    {
      "url": "https://latentmile.forevenza.com"
    }
  ],
  "paths": {
    "/_c/request": {
      "post": {
        "operationId": "submit_request",
        "summary": "Send a requirement to Latent Mile",
        "description": "Your request is recorded with a reference number. Latent Mile checks local handoff options, scan scope, deadline feasibility, price, handling and negative-return arrangements and replies by email when an address is left. Nothing is ordered or committed until you agree terms. Contact details are kept apart from the requirement, while we correspond or do business and for 24 months after, so a later request picks up where it left off; ask us to delete them at any time.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "need"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "buy",
                      "source",
                      "quote",
                      "verify",
                      "lease",
                      "license",
                      "hire",
                      "retrieve",
                      "convert",
                      "other"
                    ],
                    "description": "What you want done"
                  },
                  "need": {
                    "type": "string",
                    "maxLength": 2000,
                    "description": "The requirement in your own words"
                  },
                  "specifications": {
                    "type": "object",
                    "properties": {
                      "film": {
                        "type": "string",
                        "description": "Current ready batch with explicit roll quantity and film process. Process identifiers such as C-41 are not quantities. Keep eligible 35mm C-41 separate from other film.",
                        "x-facet": "specification"
                      },
                      "area": {
                        "type": "string",
                        "description": "Town or ZIP for local handoff; not a home street address.",
                        "x-facet": "geography"
                      },
                      "future": {
                        "type": "string",
                        "description": "Future volume and cadence, preserving approximate ranges and calendar-month units. Not a subscription.",
                        "x-facet": "quantity"
                      },
                      "use": {
                        "type": "string",
                        "description": "Intended use, cropping, print size and editing preferences.",
                        "x-facet": "specification"
                      },
                      "scans": {
                        "type": "string",
                        "description": "Buyer requested exact scan dimensions, format and correction wording, distinct from provisional advice.",
                        "x-facet": "specification"
                      },
                      "prints": {
                        "type": "string",
                        "description": "Print preference. Never automatically add prints.",
                        "x-facet": "specification"
                      },
                      "deadline": {
                        "type": "string",
                        "description": "Requested scans-back timing, including date, time and basis relative to handoff. Natural-language targets stay unconfirmed.",
                        "x-facet": "timing"
                      },
                      "flexibility": {
                        "type": "string",
                        "description": "Timing flexibility or hard deadline, in buyer wording.",
                        "x-facet": "timing"
                      },
                      "handoff": {
                        "type": "string",
                        "description": "Preferred handoff window and practical travel constraints, not a booking.",
                        "x-facet": "timing"
                      },
                      "other": {
                        "type": "string",
                        "description": "Separate out-of-core film enquiry requiring handling resolution.",
                        "x-facet": "specification"
                      },
                      "proposed_scope": {
                        "type": "string",
                        "description": "Provisional use-based scan recommendation, not delivered specifications.",
                        "x-facet": "specification"
                      },
                      "open_questions": {
                        "type": "string",
                        "description": "Consequential uncertainties to resolve in the continuing engagement.",
                        "x-facet": "specification"
                      },
                      "next_work": {
                        "type": "string",
                        "description": "Latent Mile owned availability, scope, terms and negative-return work.",
                        "x-facet": "specification"
                      },
                      "source_note": {
                        "type": "string",
                        "description": "Original buyer account, superseded by explicit field corrections where revision history says so.",
                        "x-facet": "specification"
                      },
                      "revision_history": {
                        "type": "string",
                        "description": "Explicitly superseded statements and field corrections; current fields govern.",
                        "x-facet": "specification"
                      },
                      "supersedes_reference": {
                        "type": "string",
                        "description": "Earlier request reference this update continues. A reference restored from a buyer-held copy is historical information to reconcile, not verified recording or service status.",
                        "x-facet": "identifier"
                      }
                    },
                    "description": "Details you already know. The business helps resolve missing specifications in the continuing engagement."
                  },
                  "quantity": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "unit": {
                        "type": "string"
                      },
                      "per": {
                        "type": "string"
                      }
                    }
                  },
                  "timing": {
                    "type": "object",
                    "properties": {
                      "earliest": {
                        "type": "string"
                      },
                      "latest": {
                        "type": "string"
                      },
                      "recurrence": {
                        "type": "string"
                      },
                      "text": {
                        "type": "string"
                      }
                    }
                  },
                  "geography": {
                    "type": "object",
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "country": {
                        "type": "string"
                      },
                      "from": {
                        "type": "string"
                      },
                      "to": {
                        "type": "string"
                      }
                    }
                  },
                  "budget": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "number"
                      },
                      "currency": {
                        "type": "string",
                        "description": "ISO 4217, default USD"
                      },
                      "per": {
                        "type": "string",
                        "description": "total, unit, month, year, load, ..."
                      }
                    }
                  },
                  "requested_fields": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 30,
                    "description": "Result fields you need"
                  },
                  "contact": {
                    "type": "object",
                    "description": "Optional; stored apart from the requirement, kept while we correspond or do business and for 24 months after, then deleted; you can ask us to delete it sooner",
                    "properties": {
                      "email": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      },
                      "organization": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Recorded, with a reference number"
          },
          "400": {
            "description": "What to fix"
          }
        }
      }
    }
  }
}