{
  "openapi": "3.1.0",
  "info": {
    "title": "Standframe Machine Interface v0",
    "version": "0.1.0",
    "summary": "Local read-only contract skeleton for source-backed Standing Framework machine resources.",
    "description": "This is a local contract skeleton, not proof that a production API is deployed."
  },
  "servers": [
    {
      "url": "https://standframe.com",
      "description": "Canonical public origin; API paths are not production-live until separate deployment proof exists."
    }
  ],
  "x-standing-framework": {
    "object": "standframe_machine_interface",
    "status": "local-contract-only",
    "display_name": "Standing Framework",
    "canonical_origin": "https://standframe.com",
    "proof_posture": "local-contract-proof-only",
    "nonclaims": [
      "This skeleton does not prove a live production API.",
      "This skeleton does not authorize production deployment.",
      "This skeleton does not prove customer validation, adoption, PMF, indexing, ranking, model preference, formal publication, peer review, or external demand."
    ]
  },
  "paths": {
    "/api/v1": {
      "get": {
        "operationId": "getServiceRoot",
        "summary": "Get the compact Standframe machine interface home view.",
        "x-standframe-intent": [
          "service.discover",
          "information.discover"
        ],
        "responses": {
          "200": {
            "description": "Compact source-backed service root.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceRoot"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/company": {
      "get": {
        "operationId": "getCompany",
        "summary": "Get public Standing Framework company metadata.",
        "x-standframe-intent": [
          "company.read"
        ],
        "responses": {
          "200": {
            "description": "Public company metadata with claim boundary.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Company"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/capabilities": {
      "get": {
        "operationId": "listCapabilities",
        "summary": "List public read-only machine-interface capabilities.",
        "x-standframe-intent": [
          "capabilities.read"
        ],
        "responses": {
          "200": {
            "description": "Public capability list.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CapabilityList"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/research": {
      "get": {
        "operationId": "listResearch",
        "summary": "List website research records and claim-bounded catalog metadata.",
        "x-standframe-intent": [
          "research.catalog.read"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "description": "Optional query term for implementation-local filtering."
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 25
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Research catalog entries.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResearchList"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/routes": {
      "get": {
        "operationId": "listRoutes",
        "summary": "List public route metadata with source and claim boundaries.",
        "x-standframe-intent": [
          "routes.read"
        ],
        "responses": {
          "200": {
            "description": "Public route metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RouteList"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/claims": {
      "get": {
        "operationId": "listClaims",
        "summary": "List public claim-boundary rows.",
        "x-standframe-intent": [
          "claims.read"
        ],
        "responses": {
          "200": {
            "description": "Public claim-boundary rows.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimList"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/search": {
      "get": {
        "operationId": "searchPublicResources",
        "summary": "Return static public retrieval pointers for client-side search.",
        "x-standframe-intent": [
          "search.public"
        ],
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Search results with source pointers.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchResults"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/verification/schema": {
      "get": {
        "operationId": "getVerificationSchema",
        "summary": "Get the static verification decision-record schema example.",
        "x-standframe-intent": [
          "verification_schema.read",
          "proof_boundary.read"
        ],
        "responses": {
          "200": {
            "description": "Secondary static schema example for verification decision records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VerificationSchema"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/files/index": {
      "get": {
        "operationId": "listFileMetadata",
        "summary": "List public artifact metadata records.",
        "x-standframe-intent": [
          "file.metadata.list",
          "file.metadata.read"
        ],
        "responses": {
          "200": {
            "description": "Public file metadata list.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadataList"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/files/{id}": {
      "get": {
        "operationId": "getFileMetadata",
        "summary": "Get public artifact metadata.",
        "x-standframe-intent": [
          "file.metadata.read"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Public file metadata.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileMetadata"
                }
              }
            }
          },
          "404": {
            "description": "Resource unavailable or not public.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/status": {
      "get": {
        "operationId": "getStatus",
        "summary": "Get local contract and proof posture.",
        "x-standframe-intent": [
          "status.read",
          "proof.posture.read"
        ],
        "responses": {
          "200": {
            "description": "Machine interface status.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Status"
                }
              }
            }
          },
          "default": {
            "description": "Problem detail for operator misuse, unavailable resource, held capability, policy denial, proof failure, or runtime failure.",
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/Problem"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ServiceRoot": {
        "type": "object",
        "required": [
          "object",
          "service",
          "links",
          "proof_posture",
          "next_actions"
        ],
        "properties": {
          "object": {
            "const": "standframe_machine_interface"
          },
          "service": {
            "$ref": "#/components/schemas/Service"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "proof_posture": {
            "type": "string"
          },
          "service_access": {
            "$ref": "#/components/schemas/ServiceAccess"
          },
          "next_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Service": {
        "type": "object",
        "required": [
          "id",
          "display_name",
          "canonical_origin",
          "current_state"
        ],
        "properties": {
          "id": {
            "const": "standframe"
          },
          "display_name": {
            "const": "Standing Framework"
          },
          "canonical_origin": {
            "const": "https://standframe.com"
          },
          "current_state": {
            "type": "string"
          }
        }
      },
      "Company": {
        "type": "object",
        "required": [
          "id",
          "display_name",
          "canonical_origin",
          "summary",
          "claim_ceiling",
          "what_it_does_not_prove"
        ],
        "properties": {
          "id": {
            "const": "standframe"
          },
          "display_name": {
            "const": "Standing Framework"
          },
          "canonical_origin": {
            "const": "https://standframe.com"
          },
          "summary": {
            "type": "string"
          },
          "contact": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "claim_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "claim_ceiling": {
            "type": "string"
          },
          "what_it_proves": {
            "type": "string"
          },
          "what_it_does_not_prove": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          }
        }
      },
      "CapabilityList": {
        "type": "object",
        "required": [
          "service_access",
          "data"
        ],
        "properties": {
          "service_access": {
            "$ref": "#/components/schemas/ServiceAccess"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Capability"
            }
          }
        }
      },
      "Capability": {
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "intent_tags",
          "consequence"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "enum": [
              "contract_draft",
              "available",
              "held_for_later_packet"
            ]
          },
          "intent_tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "consequence": {
            "const": "read_only"
          },
          "claim_ceiling": {
            "type": "string"
          }
        }
      },
      "ResearchList": {
        "type": "object",
        "required": [
          "data"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResearchRecord"
            }
          }
        }
      },
      "ResearchRecord": {
        "type": "object",
        "required": [
          "id",
          "title",
          "authors",
          "date",
          "route",
          "abstract",
          "lifecycle_state",
          "claim_ceiling"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "authors": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "route": {
            "type": "string"
          },
          "abstract": {
            "type": "string"
          },
          "lifecycle_state": {
            "type": "string"
          },
          "claim_ceiling": {
            "type": "string"
          },
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "RouteList": {
        "type": "object",
        "required": [
          "object",
          "data",
          "count",
          "proof_posture"
        ],
        "properties": {
          "object": {
            "const": "standframe_route_list"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteRecord"
            }
          },
          "count": {
            "type": "integer"
          },
          "proof_posture": {
            "type": "string"
          }
        }
      },
      "RouteRecord": {
        "type": "object",
        "required": [
          "id",
          "path",
          "file",
          "url",
          "kind",
          "title",
          "lifecycle_state",
          "claim_ceiling",
          "source_ids",
          "claim_ids"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "file": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "lifecycle_state": {
            "type": "string"
          },
          "claim_ceiling": {
            "type": "string"
          },
          "include_in_sitemap": {
            "type": "boolean"
          },
          "include_in_llms": {
            "type": "boolean"
          },
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "claim_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ClaimList": {
        "type": "object",
        "required": [
          "object",
          "data",
          "count",
          "proof_posture"
        ],
        "properties": {
          "object": {
            "const": "standframe_claim_list"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ClaimRecord"
            }
          },
          "count": {
            "type": "integer"
          },
          "proof_posture": {
            "type": "string"
          }
        }
      },
      "ClaimRecord": {
        "type": "object",
        "required": [
          "id",
          "preferred_wording",
          "claim_type",
          "lifecycle_state",
          "what_it_proves",
          "what_it_does_not_prove",
          "source_ids"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "preferred_wording": {
            "type": "string"
          },
          "claim_type": {
            "type": "string"
          },
          "lifecycle_state": {
            "type": "string"
          },
          "claim_ceiling": {
            "type": "string"
          },
          "what_it_proves": {
            "type": "string"
          },
          "what_it_does_not_prove": {
            "type": "string"
          },
          "approval_required": {
            "type": "string"
          },
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "public_url_target": {
            "type": [
              "string",
              "null"
            ]
          },
          "observed_date": {
            "type": "string"
          },
          "refresh_rule": {
            "type": "string"
          }
        }
      },
      "SearchResults": {
        "type": "object",
        "required": [
          "object",
          "query_contract",
          "data",
          "count",
          "proof_posture"
        ],
        "properties": {
          "object": {
            "const": "standframe_static_search_index"
          },
          "query_contract": {
            "$ref": "#/components/schemas/SearchQueryContract"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SearchResult"
            }
          },
          "count": {
            "type": "integer"
          },
          "proof_posture": {
            "type": "string"
          }
        }
      },
      "SearchQueryContract": {
        "type": "object",
        "required": [
          "mode",
          "client_action",
          "nonclaim"
        ],
        "properties": {
          "mode": {
            "const": "static_index"
          },
          "client_action": {
            "type": "string"
          },
          "nonclaim": {
            "type": "string"
          }
        }
      },
      "SearchResult": {
        "type": "object",
        "required": [
          "resource_id",
          "resource_type",
          "title",
          "match",
          "links"
        ],
        "properties": {
          "resource_id": {
            "type": "string"
          },
          "resource_type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "excerpt": {
            "type": "string"
          },
          "match": {
            "$ref": "#/components/schemas/SearchMatch"
          },
          "links": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        }
      },
      "SearchMatch": {
        "type": "object",
        "required": [
          "fields",
          "mode"
        ],
        "properties": {
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "mode": {
            "const": "static_index"
          }
        }
      },
      "VerificationSchema": {
        "type": "object",
        "required": [
          "object",
          "status",
          "claim_ceiling",
          "canonical_route",
          "service_access",
          "request_schema",
          "record_schema",
          "authority_classes",
          "verdicts",
          "nonclaims"
        ],
        "properties": {
          "object": {
            "const": "standframe_verification_schema"
          },
          "status": {
            "const": "local_static_schema_example"
          },
          "claim_ceiling": {
            "const": "schema-example-not-public-invocation"
          },
          "canonical_route": {
            "const": "/verification-for-agents.html"
          },
          "service_access": {
            "$ref": "#/components/schemas/ServiceAccess"
          },
          "request_schema": {
            "type": "object"
          },
          "record_schema": {
            "type": "object"
          },
          "authority_classes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            }
          },
          "verdicts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "nonclaims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "generated_at": {
            "type": "string"
          }
        }
      },
      "FileMetadataList": {
        "type": "object",
        "required": [
          "object",
          "data",
          "count",
          "proof_posture"
        ],
        "properties": {
          "object": {
            "const": "standframe_file_metadata_list"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FileMetadata"
            }
          },
          "count": {
            "type": "integer"
          },
          "proof_posture": {
            "type": "string"
          },
          "nonclaims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "FileMetadata": {
        "type": "object",
        "required": [
          "id",
          "path",
          "media_type",
          "relation",
          "visibility",
          "source_ids"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "path": {
            "type": "string"
          },
          "media_type": {
            "type": "string"
          },
          "relation": {
            "enum": [
              "website_source",
              "generated_metadata",
              "public_artifact"
            ]
          },
          "visibility": {
            "const": "public"
          },
          "source_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "Status": {
        "type": "object",
        "required": [
          "object",
          "current_state",
          "proof_posture",
          "service_access",
          "proof_required",
          "proof_observed",
          "proof_missing",
          "blocked",
          "explicit_blockers",
          "next_actions"
        ],
        "properties": {
          "object": {
            "const": "standframe_machine_interface"
          },
          "current_state": {
            "type": "string"
          },
          "proof_posture": {
            "type": "string"
          },
          "service_access": {
            "$ref": "#/components/schemas/ServiceAccess"
          },
          "proof_required": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "proof_observed": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "proof_missing": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked": {
            "type": "boolean"
          },
          "explicit_blockers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "next_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ServiceAccess": {
        "type": "object",
        "required": [
          "current_access",
          "available_now",
          "controlled_request_route",
          "submission_endpoint",
          "submission_state",
          "next_safe_action"
        ],
        "properties": {
          "current_access": {
            "const": "read_only_static"
          },
          "available_now": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "controlled_request_route": {
            "type": "string"
          },
          "controlled_request_label": {
            "type": "string"
          },
          "submission_endpoint": {
            "type": "null"
          },
          "submission_state": {
            "const": "held_for_later_packet"
          },
          "held_until": {
            "type": "string"
          },
          "next_safe_action": {
            "type": "string"
          }
        }
      },
      "Problem": {
        "type": "object",
        "required": [
          "type",
          "title",
          "status"
        ],
        "properties": {
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "detail": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      }
    }
  }
}
