{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/machinesignal-it/json-schema/machinesignal-it-public-preview-response-schema.json",
  "title": "PublicPreviewResponse",
  "x-generated": "2026-10-30",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/api.machinesignal.it-openapi.json#/components/schemas/PublicPreviewResponse",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "protocol",
    "mode",
    "commercial_scope",
    "submitted_domain_count",
    "observed_domain_count",
    "results",
    "dec_illustration",
    "boundaries",
    "next_step"
  ],
  "properties": {
    "protocol": {
      "const": "machinesignal_mini_dec_preview_v2"
    },
    "mode": {
      "const": "free_limited_dec_preview"
    },
    "commercial_scope": {
      "const": "B2B_Italy_only"
    },
    "submitted_domain_count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3
    },
    "observed_domain_count": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3
    },
    "results": {
      "type": "array",
      "minItems": 1,
      "maxItems": 3,
      "items": {
        "$ref": "#/$defs/PublicPreviewResult"
      }
    },
    "dec_illustration": {
      "type": "object",
      "additionalProperties": true
    },
    "boundaries": {
      "type": "object",
      "additionalProperties": true,
      "properties": {
        "preview_is_full_ms_dec_250": {
          "const": false
        },
        "preview_is_limited_dec_method_illustration": {
          "const": true
        },
        "preview_ranks_only_submitted_domains": {
          "const": true
        },
        "order_created": {
          "const": false
        },
        "checkout_created": {
          "const": false
        },
        "payment_executed": {
          "const": false
        },
        "submitted_domains_persisted_by_preview": {
          "const": false
        }
      }
    },
    "next_step": {
      "type": "string"
    }
  },
  "$defs": {
    "MiniDecPreview": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "rank",
        "opportunity_signal_score",
        "confidence",
        "priority",
        "decision",
        "reason",
        "evidence_coverage",
        "source_scope",
        "comparison_scope",
        "not_full_commercial_decision"
      ],
      "properties": {
        "rank": {
          "type": "integer",
          "minimum": 1,
          "maximum": 3
        },
        "opportunity_signal_score": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100
        },
        "confidence": {
          "type": "number",
          "minimum": 0,
          "maximum": 0.65
        },
        "priority": {
          "enum": [
            "high",
            "medium",
            "low"
          ]
        },
        "decision": {
          "enum": [
            "prioritize_for_full_dec",
            "review_in_full_dec",
            "defer_until_more_evidence"
          ]
        },
        "reason": {
          "type": "string"
        },
        "evidence_coverage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "positive",
            "checked"
          ],
          "properties": {
            "positive": {
              "type": "integer",
              "minimum": 0
            },
            "checked": {
              "type": "integer",
              "minimum": 1
            }
          }
        },
        "source_scope": {
          "const": "public_homepage_only"
        },
        "comparison_scope": {
          "const": "submitted_domains_only"
        },
        "not_full_commercial_decision": {
          "const": true
        }
      }
    },
    "PublicPreviewFinding": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "check",
        "observed"
      ],
      "properties": {
        "check": {
          "type": "string"
        },
        "observed": {
          "oneOf": [
            {
              "type": "boolean"
            },
            {
              "type": "integer"
            },
            {
              "type": "string"
            }
          ]
        }
      }
    },
    "PublicPreviewResult": {
      "type": "object",
      "additionalProperties": true,
      "required": [
        "status",
        "domain",
        "public_readiness_score",
        "findings",
        "mini_dec_preview",
        "commercial_decision_generated",
        "full_dec_analysis_generated"
      ],
      "properties": {
        "status": {
          "enum": [
            "observed",
            "not_observed"
          ]
        },
        "domain": {
          "type": "string"
        },
        "public_readiness_score": {
          "oneOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 100
            },
            {
              "type": "null"
            }
          ]
        },
        "observed_title": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "observed_description": {
          "oneOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "findings": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/PublicPreviewFinding"
          }
        },
        "mini_dec_preview": {
          "oneOf": [
            {
              "$ref": "#/$defs/MiniDecPreview"
            },
            {
              "type": "null"
            }
          ]
        },
        "interpretation": {
          "type": "string"
        },
        "reason": {
          "type": "string"
        },
        "commercial_decision_generated": {
          "const": false
        },
        "full_dec_analysis_generated": {
          "const": false
        }
      }
    }
  }
}