{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/abmeter-ai/json-schema/abmeter-ai-exposure-submission-schema.json",
  "title": "ExposureSubmission",
  "description": "Internal format for submitting parameter exposures from client SDKs",
  "x-generated": "2026-10-31",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/abmeter-ai-openapi.yml#/components/schemas/ExposureSubmission",
  "type": "object",
  "properties": {
    "parameter_id": {
      "type": "integer",
      "description": "The database ID of the parameter that was resolved"
    },
    "space_id": {
      "type": "integer",
      "description": "The database ID of the space containing the parameter"
    },
    "resolved_value": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "boolean"
        },
        {
          "type": "number"
        }
      ],
      "description": "The resolved parameter value for this user"
    },
    "user_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The user ID this exposure is for (null for default values)"
    },
    "exposable_type": {
      "type": [
        "string",
        "null"
      ],
      "description": "Type of the entity that provided the override (Experiment, FeatureFlag, null for default)"
    },
    "exposable_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Database ID of the experiment or feature flag that provided the override"
    },
    "audience_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Database ID of the audience that matched (for experiments and feature flags)"
    },
    "resolved_at": {
      "type": "string",
      "format": "date-time",
      "description": "When this parameter value was resolved"
    }
  },
  "required": [
    "parameter_id",
    "space_id",
    "resolved_value",
    "resolved_at",
    "user_id",
    "exposable_type",
    "exposable_id",
    "audience_id"
  ]
}