{
  "schema_version": "1.0",
  "description": "Machine-readable contact descriptor for sidratnam.com. Enables AI agents to submit structured inbound contact requests on behalf of principals.",
  "contact_endpoint": {
    "url": "https://sidratnam.com/api/contact/inbound",
    "method": "POST",
    "content_type": "application/json",
    "rate_limit": "10 requests per minute per IP"
  },
  "request_schema": {
    "from_name": {
      "type": "string",
      "required": true,
      "description": "Full name of the person or principal initiating contact."
    },
    "from_email": {
      "type": "string",
      "format": "email",
      "required": true,
      "description": "Email address for Sid's reply. Must be a real, deliverable address."
    },
    "from_organization": {
      "type": "string",
      "required": false,
      "description": "Organization, institution, or company, if applicable."
    },
    "inquiry_type": {
      "type": "string",
      "required": true,
      "enum": ["active_vision", "future_advisory", "press", "other"],
      "description": "active_vision: you have a specific problem or vision and need Sid to help build the solution now. future_advisory: you want Sid in your corner for a future project or vision. press: media, interview, or publication inquiry. other: anything else."
    },
    "subject": {
      "type": "string",
      "required": true,
      "max_length": 200,
      "description": "One-line subject summarizing the purpose of contact."
    },
    "message": {
      "type": "string",
      "required": true,
      "max_length": 5000,
      "description": "Full message. Be specific: what is the problem, what is the vision, what is the ask."
    },
    "links": {
      "type": "array",
      "items": { "type": "string", "format": "uri" },
      "required": false,
      "max_items": 5,
      "description": "Optional supporting URLs — prior work, proposals, documentation, etc."
    },
    "on_behalf_of": {
      "type": "object",
      "required": false,
      "description": "Agent metadata. Include this when an AI agent is submitting on behalf of a human principal.",
      "properties": {
        "is_agent": {
          "type": "boolean",
          "description": "Set true if an AI agent is submitting this request."
        },
        "agent_name": {
          "type": "string",
          "description": "Name or identifier of the AI agent (e.g. 'Claude', 'GPT-4o', 'Perplexity')."
        },
        "principal_name": {
          "type": "string",
          "description": "Name of the human on whose behalf the agent is acting."
        }
      }
    }
  },
  "response_schema": {
    "202": {
      "description": "Contact accepted. Sid will review and respond personally. No auto-reply will be sent.",
      "body": {
        "status": "accepted",
        "ref_id": "UUID string — retain for reference"
      }
    },
    "400": {
      "description": "Validation failed or spam detected.",
      "body": {
        "error": "string",
        "fields": "object with field-level error messages (validation failures only)"
      }
    },
    "429": {
      "description": "Rate limit exceeded. Back off for 60 seconds."
    },
    "500": {
      "description": "Server error. Retry after a short delay."
    }
  },
  "engagement_model": {
    "response_commitment": "Sid evaluates every submission personally and responds when there is genuine interest. No automated reply will be sent.",
    "filter": "The work decides, not the title or budget. A working prototype from a teenager has the same standing as a request from a Fortune 500 CEO.",
    "selectivity": "Sid does not chase. He evaluates and responds when the fit is real.",
    "relationship_first": "Engagement begins after the relationship is established as genuine on both sides."
  },
  "inquiry_guidance": {
    "active_vision": "Describe the problem concisely, what you have tried, what outcome you need, and why now. Include any constraints (budget, timeline, regulatory).",
    "future_advisory": "Describe the domain you operate in, the vision you are working toward, and why you want Sid in your corner.",
    "press": "Include the publication, the angle, the deadline, and any specific questions.",
    "other": "Be specific. Generic messages receive no reply."
  }
}
